如何在python matplotlib中为pcolor设置固定的颜色条?

时间:2010-06-14 00:49:53

标签: python numpy scipy matplotlib

我正在使用pcolor和自定义颜色贴图来绘制值矩阵。我设置了我的颜色贴图,以便低值为白色,高值为红色,如下所示。我的所有矩阵都有0到20之间的值(包括0和20),我希望20永远是纯红色,0总是纯白色,即使矩阵的值不是整个范围。例如,如果我的矩阵只有2到7之间的值,我不希望它将2绘制为白色,将7绘制为红色,而是将其设置为颜色,就好像范围仍为0到20.我该怎么做?我尝试使用colorbar的“ticks =”选项,但它没有用。

这是我当前的代码(假设“my_matrix”包含要绘制的值):

cdict = {'red': ((0.0, 1.0, 1.0),
         (0.5, 1.0, 1.0),
         (1.0, 1.0, 1.0)),
     'green': ((0.0, 1.0, 1.0),
           (0.5, 1.0, 1.0),
           (1.0, 0.0, 0.0)),
     'blue': ((0.0, 1.0, 1.0),
          (0.5, 1.0, 1.0),
          (1.0, 0.0, 0.0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap', cdict, 256)
colored_matrix = plt.pcolor(my_matrix, cmap=my_cmap)
plt.colorbar(colored_matrix, ticks=[0, 5, 10, 15, 20])

任何想法如何解决这个问题以获得正确的结果?非常感谢。

1 个答案:

答案 0 :(得分:2)

一个猜测:你的色彩图很可能。在绘图时尝试调整vminvmax

pylab.imshow(im, vmin=0, vmax=20)