如何获得色彩表的一部分

问题描述 投票:3回答:2

我正在从类中的数据框“ self.data”绘制一些曲线。数据框的每一列都是一条曲线,列名写在该行的末尾。

我制作了这个程序来这样做:

cmap = plt.cm.get_cmap('brg', len(self.data.columns)+1)

for i in range(len(self.data.columns)): #plot curves and add legend
        self.courbe.plot(self.data[self.data.columns[i]],c=cmap(i))

        angle=20
        self.courbe.annotate(self.data.columns[i], 
                    xy= (max(self.data.index),self.data.at[max(self.data.index),self.data.columns[i]]),
                    textcoords='offset points',
                    xytext=(2, 0),
                    va='bottom',
                    rotation=angle,c=cmap(i))

所以我使用了“ brg”色彩图,但我只想使用此色彩图的一部分(例如,删除浅绿色的部分。)>

我尝试了一些关于Stackoverflow的建议解决方案,例如how to extract a subset of a colormap as a new colormap in matplotlib?,但所有曲线的颜色相同。有人知道另一种方法吗?

谢谢,祝你有美好的一天:)

我正在从类中的数据框“ self.data”绘制一些曲线。数据框的每一列都是一条曲线,列名写在该行的末尾。我制作了此程序来执行此操作:cmap = ...

python python-3.x pandas matplotlib colormap
2个回答
3
投票

A norm用于将一个数字范围映射到颜色图所需的范围0..1。我们可以创建一个特殊的规范以获得所需的效果。


1
投票

另一个答案使用的因素可能有点不直观;因此这里是相同的,只是没有任何规范或因素。您仍然可以在0到1之间选择一个较低和较高的值,然后从颜色表中获取该范围内的颜色。然后遍历它们:

© www.soinside.com 2019 - 2024. All rights reserved.