In Spyder, plot using Matplotlib with interactive zoom, etc

107,638

Solution 1

Select from the menu Tools > Preferences, then IPython console in the list of categories on the left, then the tab Graphics at the top, and change the Graphics backend from Inline to e.g. Qt.
For me though, the figures then always pop up in the background.
(I use Spyder 3.0.0dev bundled with WinPython 3.4.)

Solution 2

Even though it's an old question, my solution to the same issue without using the GUI.

Plot only in console:

%matplotlib inline 
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')

Going back to plot outside console:

%matplotlib qt5
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')

There was no need to restart my spyder or kernal. Session info:

spyder 3.3.2
python 3.6.8
windows 10. 

Solution 3

And remember to restart the kernel and there it goes.

Solution 4

You might not need to restart spyder. Just go to the tool menu and restart the kernel. Then you should have the plot displayed. Please, this is after you must have set the appropriate preferences for graphics

Share:
107,638

Related videos on Youtube

Kurt Peek
Author by

Kurt Peek

Hi, I'm Kurt Peek, a backend engineer at Apple.

Updated on March 12, 2020

Comments

  • Kurt Peek
    Kurt Peek over 4 years

    I've recently switched from Enthought Canopy to Anaconda and am using the Spyder IDE. I've noticed that when I plot some data,

    import matplotlib.pyplot as plt
    plt.figure()
    plt.plot(rigs2)
    plt.ion()
    plt.show()
    

    It shows up as an inline figure in the IPython console:

    Result from the plt.plot() command

    However, in Enthought it used to be that the plot would show up in a separate window with zoom, back, and forward buttons. Is there any way to achieve the same in Spyder?

  • Kurt Peek
    Kurt Peek about 8 years
    Thanks Norman, although changing the Tools -> Preferences as you suggested didn't work initially, I typed "%matplotlib qt" in the command line and subsequently plots were opened in new windows with the possibility to zoom.
  • Norman
    Norman about 8 years
    Yes, the setting from the Preferences dialog takes effect for new IPython consoles only; any console tabs already opened are not affected.
  • wafflecat
    wafflecat over 6 years
    Yeah, Norman is right: just restart Spyder after changing the Graphics backend in Tools > Preferences. No need to run "%matplotlib qt".
  • Carsten
    Carsten almost 6 years
    what are the "appropriate preferences for graphics"?
  • Dr Nisha Arora
    Dr Nisha Arora over 4 years
    'appropriate preferences' means setting graphics backend to be 'inline' or 'automatic' from tools - preferences - ... Also kernel restart option is in 'Consoles' menu