python中的colormap

2023-12-24 01:18
文章标签 python colormap

本文主要是介绍python中的colormap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通常我们在使用matplotlib.pyplot库中的plot函数或者scatter函数画散点图时,会使用不同的颜色标记不同点,尤其在聚类中会使用不同颜色标记不同类簇,但是现有的颜色名字很少,例如{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}。如果类簇数很少的话,可以直接用这几个进行表示,但是如果类簇数比较多,超过10个的,就不好采用上面的方法,当然也可以采用和marker参数进行结合例如‘b*’,'bo'.

假如我们只想用颜色来区分,如何生成更多的颜色名。

下面介绍一种方法,引入库函数 colormap.rgb2hex, 如果colormap库不存在,需要提前安装。下面是完整代码

from colormap import rgb2hex
import numpy as np
from matplotlib import pyplot as plt
color_names = []
sample = [0, 0.25, 0.5, 0.75, 1]  # 此处可根据自己情况进行设置
for i in sample:for j in sample:for k in sample:col = rgb2hex(i, j, k, normalised=True)color_names.append(col)
print(color_names[0])
x = np.random.random((1000, 1))
j = 0
for i in range(len(color_names)):y = j*3 + np.random.random((1000, 1)) * 2j += 1plt.scatter(x, y, color=color_names[i])
plt.show()

最终将color的名字保存在color_names中,例如:#000000

colormap的图如下:

最后可从color_names中获取color的名字来对plot函数中的color参数进行设置,下面是一个效果图

附一个画聚类结果的函数代码

# coding:utf-8
from colormap import rgb2hex
from matplotlib import pyplot as plt
import numpy as npcolors = []
sample = [0, 0.25, 0.5, 0.75, 1]
for i in sample:for j in sample:for k in sample:col = rgb2hex(i, j, k, normalised=True)colors.append(col)def plot_result(filename, x, ncluster, cl, icl):"""params--------filename: 数据集名x: 二维数据集np.ndarray格式ncluster: 类簇数cl: 聚类结果标签icl: 类簇中心"""# 画出聚类结果,每一类用一种颜色x_max = x[:, 0].max()x_min = x[:, 0].min()y_max = x[:, 1].max()y_min = x[:, 1].min()m = -1for i in range(ncluster):index = np.nonzero(cl == i)[0]x0 = x[index, 0]x1 = x[index, 1]cn = round(len(colors) * i / ncluster)for j in range(len(x0)):plt.plot(x0[j], x1[j], marker='o', markersize=5, color=colors[cn])for c in range(ncluster):plt.plot(x[icl[c]][0], x[icl[c]][1], marker='s', markerfacecolor='g', markeredgecolor='r', markersize=8)plt.title("the result of cluster on {}".format(filename))plt.axis([x_min-.05, x_max+.05, y_min-.05, y_max+.05])plt.show()

 

这篇关于python中的colormap的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/530106

相关文章

Python中edge-tts实现便捷语音合成

《Python中edge-tts实现便捷语音合成》edge-tts是一个功能强大的Python库,支持多种语言和声音选项,本文主要介绍了Python中edge-tts实现便捷语音合成,具有一定的参考价... 目录安装与环境设置文本转语音查找音色更改语音参数生成音频与字幕总结edge-tts 是一个功能强大的

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Java调用Python的四种方法小结

《Java调用Python的四种方法小结》在现代开发中,结合不同编程语言的优势往往能达到事半功倍的效果,本文将详细介绍四种在Java中调用Python的方法,并推荐一种最常用且实用的方法,希望对大家有... 目录一、在Java类中直接执行python语句二、在Java中直接调用Python脚本三、使用Run

使用Python开发Markdown兼容公式格式转换工具

《使用Python开发Markdown兼容公式格式转换工具》在技术写作中我们经常遇到公式格式问题,例如MathML无法显示,LaTeX格式错乱等,所以本文我们将使用Python开发Markdown兼容... 目录一、工具背景二、环境配置(Windows 10/11)1. 创建conda环境2. 获取XSLT

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Python中Flask模板的使用与高级技巧详解

《Python中Flask模板的使用与高级技巧详解》在Web开发中,直接将HTML代码写在Python文件中会导致诸多问题,Flask内置了Jinja2模板引擎,完美解决了这些问题,下面我们就来看看F... 目录一、模板渲染基础1.1 为什么需要模板引擎1.2 第一个模板渲染示例1.3 模板渲染原理二、模板

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.