python生成颜色数组

人工智能40

利用matplotlib.pyplot工具生成颜色数组

用途

利用循环语句生成图表时,有时希望自定义每组数据在图表上颜色

如果多组数据在同一图表上生成图形,其实matplotlib.pyplot会自动给每组数据分配不同的颜色
例如:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,1000,endpoint=False)
ys = [0, 4, 5, 3, 8, 9, 1, 7, 6, 2]
print(ys)
plt.figure(figsize=(10,8))
ax = plt.gca()
for i in range(10):
    plt.scatter(x=x,y=np.full(1000,ys[i]),s=1,label=i)
plt.legend(fontsize=12)
plt.show()

对应的图像(标签值对应的是直线插入的顺序)如下:
python生成颜色数组
颜色很美,但如果你想找出第一行插入的行在哪里,第二行插入的行在哪里,其实并不直观,甚至很难找到。

[En]

The color is beautiful, but if you want to find out where the first inserted line is and where the second inserted line is, it is actually not intuitive or even difficult to find.

因此,有时我们想要一组更规则的颜色来区分,这意味着我们需要指定每条数据的颜色。

[En]

So, sometimes we want a more regular set of colors to distinguish, which means we need to specify the color of each piece of data.

比如我们按数据插入先后顺序,每条线按从红到蓝显示,就像下图这样,通过颜色的递进关系一眼就能看出y=0的这条直线是第一条插入的,y=4的这条是第二条插入的

python生成颜色数组

方法

要实现上面的效果,首先就是生成颜色数组

  1. 手动写一个数组列表的方法就不具体介绍了,自己搜一下有哪些颜色就行

  2. 想要介绍的是从一个颜色渐进的图谱中取颜色
    常见的地图集颜色有,您可以搜索每种颜色的对应名称,也可以自己定义渐变颜色:

    [En]

    Common atlas colors are, you can search for the corresponding names of each color, and you can define a gradient color by yourself:

    python生成颜色数组

get_cmap

然后我们要用到的一个主要函数是 matplotlib.pyplot.get_cmap(name=None, lut=None)
简单来说, get_cmap()有两个参数:
name:颜色图谱,可以是字符串,也可以是colormap实例
lut:要得到的颜色个数,一个整数


colors = plt.get_cmap('RdBu',10)

colors([0,1,2,3,4,5,6,7,8,9,10,11])

得到以下结果,可以看出这是个narray二维数组(只传入一个整数且不用列表,则返回一个python数组,plt绘图时需要二维数组的颜色),且大于9的数值都是一样的颜色了(这与我们设置了分为10段有关)

array([[0.40392157, 0.        , 0.12156863, 1.        ],
       [0.71372549, 0.1254902 , 0.18344227, 1.        ],
       [0.86535948, 0.43660131, 0.34814815, 1.        ],
       [0.96862745, 0.71764706, 0.6       , 1.        ],
       [0.98169935, 0.90762527, 0.86405229, 1.        ],
       [0.88583878, 0.92941176, 0.95337691, 1.        ],
       [0.65490196, 0.81437908, 0.89411765, 1.        ],
       [0.33159041, 0.62004357, 0.78823529, 1.        ],
       [0.14422658, 0.41960784, 0.68453159, 1.        ],
       [0.01960784, 0.18823529, 0.38039216, 1.        ],
       [0.01960784, 0.18823529, 0.38039216, 1.        ],
       [0.01960784, 0.18823529, 0.38039216, 1.        ]])

上面那幅红-蓝渐变色的图表是根据下方代码得到的

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0,10,1000,endpoint=False)
ys = [0, 4, 5, 3, 8, 9, 1, 7, 6, 2]
print(ys)
plt.figure(figsize=(10,8))
ax = plt.gca()
for i in range(10):
    plt.scatter(x=x,y=np.full(1000,ys[i]),s=1,label=i,c=plt.get_cmap('RdBu',10)([i]))
plt.legend(fontsize=12)
plt.show()

生成渐变颜色数组的方法


def get_colors(name, lut):
"""
    params:
        - name:颜色图谱,可以是字符串,也可以是colormap实例
        - lut:要得到的颜色个数,一个整数
"""
    return plt.get_cmap(name, lut)([i for i in range(lut)])

效果就是这样
python生成颜色数组

Original: https://blog.csdn.net/weixin_43412231/article/details/117335904
Author: weixin_43412231
Title: python生成颜色数组

相关文章
基于Matlab的SLIC超像素分割算法分析 人工智能

基于Matlab的SLIC超像素分割算法分析

SLIC超像素分割算法分析 1:导入原始照片,初始化聚类中心,按照设定的超像素个数,在图像内均匀的分配聚类中心。假设图片总共有 N 个像素点,预分割为 s 个相同尺寸的超像素,那么每个超像素的大小为N...
Mask2Former 人工智能

Mask2Former

Masked-attention Mask Transformer for Universal Image Segmentation 图像分割是关于将不同语义的像素分组,例如,类别或实例成员关系,其中...
抖音小视频背景歌名识别的学习 人工智能

抖音小视频背景歌名识别的学习

文章目录 背景 前言 基础技术选型 * 声纹识别 - 声纹的定义 声纹识别的特征 声纹识别的流程 特征提取 + 语音信号分帧 对每帧进行傅立叶变换 时域与频域 + 时域 频域 基础技术工具选型 * 选...
一、音频基础知识 - 专业词汇 人工智能

一、音频基础知识 – 专业词汇

文章目录 采样率 位深(精度/宽度) 声道 滤波器 * 低通滤波器 高通滤波器 带通滤波器 时域图 频谱图 语谱图(时频谱图) 基频 谐波 共振峰 回声 ; 采样率 在进行PCM编码时,需要将时间域上...
tf.cast()用法总结 人工智能

tf.cast()用法总结

概述 tf.cast()函数用于执行tensorflow中张量数据类型转换。 用法 tf.cast(x, dtype, name=None) 1.x:待转换的数据(张量) 2.dtype:目标数据类型...