當我從ipython shell或ipython筆記本運行文件時,通常會顯示圖,但是當我從bash終端運行文件時,不會顯示圖 - - 從bash終端運行時,其他一切正常工作。從bash終端運行文件時,不會顯示Matplotlib圖
樣品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'
你能否提供一個不輸出任何內容的示例完整腳本?就像'import matplotlib.pyplot as plt'一樣簡單; plt.plot([1,2,3],[1,2,3]); plt.show()'。另外,你使用了什麼matplotlib後端? – wflynny
謝謝@wflynny。 matplotlib.get_backend()輸出u'MacOSX'。該代碼根本不顯示任何內容。 – drake
嘗試'plt.show(block = True)'只是爲了在顯示之後顯式地阻止代碼。您的編輯似乎表明該窗口不會阻止代碼,所以這可能會有所幫助。如果有效,我會編輯我的答案。另外,只需確認'plt.show()'是代碼中的最後一行,對吧? – Munir