12
我正在從MatLab移動到python並使用imshow函數進行遊戲。imshow(img,cmap = cm.gray)顯示128值的白色
我似乎無法理解爲什麼它不顯示值128灰色,因爲我選擇了cmap爲灰度。
看來,因爲它使用的灰度爲最高(128)和最低值。我希望它用於[0:255]的灰度。我怎麼做?
我正在從MatLab移動到python並使用imshow函數進行遊戲。imshow(img,cmap = cm.gray)顯示128值的白色
我似乎無法理解爲什麼它不顯示值128灰色,因爲我選擇了cmap爲灰度。
看來,因爲它使用的灰度爲最高(128)和最低值。我希望它用於[0:255]的灰度。我怎麼做?
使用vmin
和vmax
參數:
plt.imshow(bg, cmap=plt.get_cmap('gray'), vmin=0, vmax=255)
不指定vmin
和vmax
,plt.imshow
自動調整其範圍的數據的最小值和最大值。
我不知道的方式來設置默認vmin
和vmax
參數所有imshow地塊,但你可以使用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()
非常感謝你! :-) - 是否有任何方法可以設置爲所有圖的默認值? – Norfeldt
是的,使用'functools.partial'。往上看。 – unutbu