python imshow灰度静态颜色值

时间:2012-02-02 20:04:14

标签: python numpy matplotlib

我理解使用matplotlib.pyplot的imshow给了我一个漂亮的草图,可用于可视化矩阵。我的问题是,当我想要显示矩阵时,该函数会根据我传递的值调整颜色密度。 例如:

#define a numpy matrix with values between 0 and 1
k=numpy.array([
         [ 1.        ,  0.9701425 ,  0.99931483],
         [ 0.9701425 ,  1.        ,  0.97845444],
         [ 0.99931483,  0.97845444,  1.        ]])
#plot the matrix
plt.imshow(k,cmap=cm.gist_gray)

我得到的图像与1和.97之间存在巨大差异。如果我这样做:

k[2][2]=.1
plt.imshow(k,cmap=cm.gist_gray)

我得到了完全不同的画面。有没有办法解决这个问题?有没有办法让我们有一个静态颜色值的图像,而不是像上面那样动态改变颜色?

1 个答案:

答案 0 :(得分:2)

您可以使用vmin的{​​{1}}和vmax关键字参数作为记录here。特别是,如果您修改了imshow

的调用
imshow

颜色将被标准化,就好像数据中存在值plt.imshow(k, vmin=0, vmax=1) 和值0一样。