我正在从MatLab转向python并使用imshow函数。
我似乎无法理解为什么它没有将值128显示为灰色,因为我选择了cmap为灰度。
似乎它使用最高(128)和最低值的灰度..我希望它使用[0:255]的灰度。我该怎么做?
答案 0 :(得分:28)
使用vmin
和vmax
参数:
plt.imshow(bg, cmap=plt.get_cmap('gray'), vmin=0, vmax=255)
未指定vmin
和vmax
,plt.imshow
会自动将其范围调整为数据的最小值和最大值。
我不知道为所有imshow图设置默认vmin
和vmax
参数的方法,但您可以使用functools.partial
使用默认参数准备一个类似自定义imshow的命令设置:
import matplotlib.pyplot as plt
import numpy as np
import functools
bwimshow = functools.partial(plt.imshow, vmin=0, vmax=255,
cmap=plt.get_cmap('gray'))
dots = np.random.randn(10, 10)*255
bwimshow(dots)
cbar = plt.colorbar()
plt.show()