从bash终端

时间:2016-03-28 19:37:06

标签: python bash matplotlib terminal

当我从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'

1 个答案:

答案 0 :(得分:41)

您需要在代码中添加matplotlib.pyplot.show()以在非交互模式下显示绘图。请参阅http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.show

上的文档 编辑:

在OP的进一步信息之后,必须使用plt.show(block=True)显式启用阻止。