When I use matplotlib's imshow() method to represent a small numpy matrix, it ends up doing some smoothing between pixels. Is there any way to disables this? It makes my figure's misleading in presentations.
The figure above is a 28x28 image, so I should be seeing large squares of single colors representing each pixel (as matlab would display it when using imagesc()). But Instead, the pixels seem to be blurred with neighboring pixels. Is there a way to disable this behavior?
Just specify vmin=0, vmax=1 . By default, imshow normalizes the data to its min and max. You can control this with either the vmin and vmax arguments or with the norm argument (if you want a non-linear scaling).
As you can see, anti-aliasing has reduced the jaggedness and created a "smoother" look. This is achieved by blending the pixels on the edge of the text with the background. The jaggs are not completely opaque, but are partially transparent.
cmap : This parameter is a colormap instance or registered colormap name. norm : This parameter is the Normalize instance scales the data values to the canonical colormap range [0, 1] for mapping to colors. vmin, vmax : These parameter are optional in nature and they are colorbar range.
It will result an image in which pixels are displayed as a square of multiple pixels. There is no relation between interpolation='nearest' and the grayscale image being displayed in color. By default imshow uses the jet colormap to display an image.
There is an interpolation option for imshow
which controls how and if interpolation will be applied to the rendering of the matrix. If you try
imshow(array, interpolation="nearest")
you might get something more like you want. As an example
A=10*np.eye(10) + np.random.rand(100).reshape(10,10) imshow(A)
compared with
A=10*np.eye(10) + np.random.rand(100).reshape(10,10) imshow(A, interpolation="nearest")
you can also try the function
matshow
which name indicated that it does exactly what you asked - represent matrices. It is quite handy when you do not need to customise the figure too much.
BTW, one of the best resources for matplotlib is their Gallery
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With