我想将图中的颜色分配给由整数表示的标称数据。我想从定性颜色图中绘制颜色,特别是我想从 Set3 中绘制五种颜色:
问题是我想使用前五种颜色,但是颜色映射器对我的数据进行了标准化,五个分类值的范围从 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()
关于python - 是否可以控制从 matplotlib 颜色图中检索哪些颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60853097/