I'm trying to visualize a numpy array using imshow() since it's similar to imagesc() in Matlab.
imshow(random.rand(8, 90), interpolation='nearest')
The resulting figure is very small at the center of the grey window, while most of the space is unoccupied. How can I set the parameters to make the figure larger? I tried figsize=(xx,xx) and it's not what I want. Thanks!
This question is tagged with
~ Asked on 2012-05-10 19:31:35
If you don't give an
aspect argument to
imshow, it will use the value for
image.aspect in your
matplotlibrc. The default for this value in a new
imshow will plot your array with equal aspect ratio.
If you don't need an equal aspect you can set
imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')
which gives the following figure
If you want an equal aspect ratio you have to adapt your
figsize according to the aspect
fig, ax = subplots(figsize=(18, 2)) ax.imshow(random.rand(8, 90), interpolation='nearest') tight_layout()
which gives you:
~ Answered on 2012-05-11 06:05:24
That's strange, it definitely works for me:
from matplotlib import pyplot as plt plt.figure(figsize = (20,2)) plt.imshow(random.rand(8, 90), interpolation='nearest')
I am using the "MacOSX" backend, btw.
~ Answered on 2012-05-10 20:17:23