imshow(img, cmap=cm.gray) shows a white for 128 value
I’m moving from MatLab to python and playing around with the imshow function.
I can’t seem to get my head around why it doesn’t show the value 128 as grey with I have chosen the cmap to be gray-scale.
It seems as it uses the grayscale for highest (128) and lowest values.. I want it to use the grayscale for [0:255]. How do I do that?
plt.imshow(bg, cmap=plt.get_cmap('gray'), vmin=0, vmax=255)
plt.imshow auto-adjusts its range to the min and max of the data.
I do not know of a way to set default
vmax parameters for all imshow plots, but you could use
functools.partial to prepare a custom imshow-like command with default parameters set:
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()