当我从ipython shell或ipython笔记本运行文件时,通常会显示绘图,但是当我从bash终端运行文件时它们不显示 - 从bash终端运行时其他一切正常。
示例python脚本(trial.py):
import matplotlib.pyplot as plt
print 'please, show my graph'
plt.plot([1,2,3], [1,2,3])
plt.show()
这就是我得到的(情节没有显示):
[~/Desktop]$ python trial.py
please, show my graph
[~/Desktop]$
如果我这样做
import matplotlib
matplotlib.use('TkAgg')
在导入pyplot之前,当我从终端运行它时,会立即打开和关闭一个窗口。
我尝试过不同的方式导入模块但没有成功:
import matplotlib.pyplot as plt
import matplotlib.pylab as plt
from matplotlib import pyplot as plt
from matplotlib import pylab as plt
我的文件中有plt.show()函数。
你知道我怎么解决它吗?
有关版本和安装的一些信息:
我在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'
答案 0 :(得分:41)
您需要在代码中添加matplotlib.pyplot.show()
以在非交互模式下显示绘图。请参阅http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.show
在OP的进一步信息之后,必须使用plt.show(block=True)
显式启用阻止。