我正在从类中的数据框“ 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 = ...
A norm
用于将一个数字范围映射到颜色图所需的范围0..1。我们可以创建一个特殊的规范以获得所需的效果。
另一个答案使用的因素可能有点不直观;因此这里是相同的,只是没有任何规范或因素。您仍然可以在0到1之间选择一个较低和较高的值,然后从颜色表中获取该范围内的颜色。然后遍历它们: