我有以下代码:设置彩条范围在matplotlib
import matplotlib.pyplot as plt
cdict = {
'red' : ((0.0, 0.25, .25), (0.02, .59, .59), (1., 1., 1.)),
'green': ((0.0, 0.0, 0.0), (0.02, .45, .45), (1., .97, .97)),
'blue' : ((0.0, 1.0, 1.0), (0.02, .75, .75), (1., 0.45, 0.45))
}
cm = m.colors.LinearSegmentedColormap('my_colormap', cdict, 1024)
plt.clf()
plt.pcolor(X, Y, v, cmap=cm)
plt.loglog()
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.colorbar()
plt.show()
因此,这会产生在轴X对y的值“V”的曲线图,使用指定的颜色表。的X和Y轴是完美的,但是V的min和max之间的传播颜色表我想强制颜色映射到范围0和1之间
我想用的:
plt.axis(...)
设置坐标轴的范围,但这只需要X和Y的最小值和最大值的参数,而不是色彩图。
编辑:
为了清楚起见,假设我有一个图表,其值范围(0 ... 0.3),而另一个图表,其值(0.2〜0.8)。
在这两个图中,我都希望颜色条的范围是(0 ... 1)。在这两张图中,我希望使用上面所有的cdict全部范围来使这个范围的颜色相同(因此在这两个图中的0.25将是相同的颜色)。在第一张图中,0.3到1.0之间的所有颜色将不会在图中显示,但会在侧面的色彩键中显示。另一方面,0到0.2之间的所有颜色,以及0.8到1之间的所有颜色都不会在图中显示,但会在侧面的颜色栏中显示。
我认为这是做一些细微的差别......对不起,我可能是不够严谨在我的问题。 您的解决方案将缩放颜色,以便用于表示值1.0的值现在将代表我的数据中的最大值。颜色条会根据需要显示0..1(vmin = 0,vmax = 1),但高于此最大值的所有颜色都将是相同的颜色... – Paul 2010-07-30 20:59:34
...我已更新我的问题以显示什么我更清楚了。对不起,如果我太模糊。 – Paul 2010-07-30 21:07:06
但是,您的答案帮助我解决了我的问题! – punyidea 2016-05-26 15:49:15