Plots are normally shown when I run files from the ipython shell or from an ipython notebook, but they don't show up when I run the file from a bash terminal -- everything else works fine when is run from a bash terminal.

Sample python script (trial.py):

import matplotlib.pyplot as plt print 'please, show my graph' plt.plot([1,2,3], [1,2,3]) plt.show() 

This is what I get (plot doesn't show up):

[~/Desktop]$ python trial.py please, show my graph [~/Desktop]$ 

If I do

import matplotlib matplotlib.use('TkAgg') 

before importing pyplot, then a window opens and closes immediately when I run it from the terminal.

I've tried different ways of importing modules without success:

import matplotlib.pyplot as plt import matplotlib.pylab as plt from matplotlib import pyplot as plt from matplotlib import pylab as plt 

I have the plt.show() function in my file.

Do you know how I can fix it?

Some info about versions and installation:

I'm on a mac OSX 10.11.3.

In [61]: print matplotlib.__file__ /usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc In [62]: print matplotlib.__version__ 1.4.2 In [64]: print sys.version 2.7.9 (default, Apr 7 2015, 07:58:25) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] In [65]: matplotlib.get_backend() Out[65]: u'MacOSX' 
4

1 Answer

You need to add matplotlib.pyplot.show() in your code to show plots in non-interactive mode. See docs at

EDIT:

After further info from OP, blocking had to be enabled explicitly using plt.show(block=True).

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy