Spyder / iPython inline plot figure size

shaunakde picture shaunakde · Oct 13, 2016 · Viewed 12.5k times · Source

When I have a figure plotted from a script, I am able to vary the figure size as desired:

plt.figure(1,figsize=(20,20),dpi=72)
plt.imshow(a)
plt.show()

but when I do this in the iPython console, I cant get the figure size to vary. Why is this happening?

Answer

Carlos Cordoba picture Carlos Cordoba · Nov 7, 2017

(Spyder maintainer here) By default the figures created in the Spyder IPython console are PNG files of fixed size.

If you want to zoom in/out or pan to left/right in a Matplotlib figure, you need to change your graphics backend from Inline (the default) to Automatic. You can do this by going to the menu

Tools > Preferences > IPython console > Graphics > Graphics backend

After doing this and restarting the kernel of the IPython console, or creating a new console, all Matplotlib figures will be created in a new window with controls for zooming and panning.

Finally, if you want to switch between Inline and Automatic while working in the console, you need to run these commands

  • %matplotlib inline to select the Inline backend.
  • %matplotlib qt5 or %matplotlib qt (depending if you're using Qt4 or Qt5) to select Automatic.