2012-05-31 53 views
11

我最近開始使用sublimetext 2,但是我今天注意到plt.show()函數在sublimetext中運行時似乎不起作用。Matplotlib圖不會在sublimetext中顯示

如果例如創建下面的腳本:

import matplotlib.pyplot as plt 
plt.plot([1,2,3,4]) 
plt.show() 

運行此與IDLE產生的曲線圖,但是,使用不產生輸出sublimetext。它只是保持'思考',直到我結束python.exe過程,然後輸出[Finished]。

我誤解了sublimetext是如何使用的?

謝謝。

+0

你是如何執行的崇高文字腳本?你在哪個平臺上? – noio

+0

我不確定你的意思,我只是打f5。 – iRoygbiv

+0

我在Windows上使用Sublime Text 3 build 3156(在CentOS上使用版本3143)。該代碼在兩個系統上都能正常工作。在我們按下Ctrl + B來執行腳本後顯示圖像窗口。 – jdhao

回答

13

我的猜測是Sublime Text 2將在您自己的環境中啓動您的代碼,並且只捕獲並顯示控制檯輸出。使用GUI時存在相同的問題,例如wxPython。

另一個解決方法是打開命令提示符並手動啓動它(python file.py)。

編輯:Here它聲明「在Windows下,圖形用戶界面被抑制。」

編輯2:Here它列出了一種方法來解決它,在頁面的底部。

+0

非常感謝你!經過幾個小時的谷歌搜索,這對我有用! – Fractaly

10

更合適的方法是隻需添加一個行默認的Python構建的系統文件:

"shell": true 

或做額外的Python構建系統:

{ 
    "cmd": ["python", "-u", "$file"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "selector": "source.python", 
    "shell": true 
} 
5

我嘗試了THETA的回答如上建議。它工作正常。如果控制檯打開和關閉瞬間就像直接從文件管理器運行Python文件,只是在末尾添加下面一行:

matplotlib.pyplot.show('hold') 

它的我第一次回答在這裏。對不起,如果我不堅持答案的格式。

+2

這應該是正確的答案。它保持繪圖窗口,無需修改開發環境 – nazikus

1

我在Ubuntu下有類似的問題。我試圖繪製pandasDataFrame這樣的:

df = pandas.DataFrame([*range(5)]) 
df.plot() 

但情節沒有顯示。原來你需要做plt.show(),正如here所討論的那樣。

+0

謝謝@Roald :) –

0

注意,在崇高的文本3(安裝了蟒蛇包)

您需要添加自定義生成系統THETA說,通過:

先添加一個名爲Python的文件夾中\path\to\Sublime Text Build XXXX\Data\Packages

然後將名爲python.sublime-build的文件放入該文件夾中。

{ 
    "cmd": ["python", "-u", "$file"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "selector": "source.python", 
    "shell": true 
} 

並記得加入plt.show()像羅爾德說的那樣。

plt.imshow(image) 
plt.show() 

演示:

enter image description here