我理解使用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)
我得到了完全不同的画面。有没有办法解决这个问题?有没有办法让我们有一个静态颜色值的图像,而不是像上面那样动态改变颜色?
答案 0 :(得分:2)
您可以使用vmin
的{{1}}和vmax
关键字参数作为记录here。特别是,如果您修改了imshow
对
imshow
颜色将被标准化,就好像数据中存在值plt.imshow(k, vmin=0, vmax=1)
和值0
一样。