python - 是否可以控制从 matplotlib 颜色图中检索哪些颜色?

标签 python matplotlib colors

我想将图中的颜色分配给由整数表示的标称数据。我想从定性颜色图中绘制颜色,特别是我想从 Set3 中绘制五种颜色:

Matplotlib built-in Qualitative colormaps

问题是我想使用前五种颜色,但是颜色映射器对我的数据进行了标准化,五个分类值的范围从 1 到 5,并从 12-颜色设置。

基本上,matplotlib.cm.get_cmap允许您指定多种颜色,但在整个范围内进行标准化:

from matplotlib import cm
set3_5 = cm.get_cmap("Set3", lut = 5)

我想要类似 matplotlib.colors.ListedColormap 的东西其中有一个参数 N它在没有标准化的情况下截断 N 项之后的颜色列表。但我不知道如何将内置颜色图传递给 ListedColormap .

最佳答案

cm.get_cmap("Set3").colors您将获得颜色图中 12 种颜色的列表。可以对该列表进行切片以获得特定的颜色。它可以用作 ListedColormap 的输入.

请注意,对于诸如 viridis 之类的顺序颜色图,该列表有 256 种颜色。您可以使用 cm.get_cmap("viridis", 8).colors 获得均匀间隔的子集然后再取一片,例如,如果您不想使用太亮的颜色。

下面是一个例子:

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

cmap = matplotlib.colors.ListedColormap(matplotlib.cm.get_cmap("Set3").colors[:5])
plt.scatter(np.random.uniform(0, 10, 50), np.random.uniform(0, 10, 50), c=np.random.uniform(0, 10, 50), cmap=cmap)
plt.colorbar()
plt.show()

example

关于python - 是否可以控制从 matplotlib 颜色图中检索哪些颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60853097/

相关文章:

python - 一个ndarray的索引问题

html - 随机颜色 CSS - 防止使用两次

c# - 每次都创建相同的对比色阵列的算法?

arrays - 如何从图像中删除所有黑色像素并仅使用图像中找到的唯一 RGB 值

python - python中sqlite的SQL错误

python - 如何使用python opencv获取图像中特定灰度值的所有色 block 的顶部和底部坐标?

python - ssh - 获取许多远程文件的元数据

python - 对数图中的重叠轴刻度标签

python - 如何在烛台图上方绘制多条线?

Python matplotlib : Change axis labels/legend from bold to regular weight