web-dev-qa-db-ja.com

Matplotlibプロットが崇高なテキストで表示されない

最近sublimetext2を使い始めましたが、今日、plt.show()関数をsublimetext内で実行すると機能しないように見えることに気付きました。

たとえば、次のスクリプトを作成するとします。

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

これをIDLEで実行するとプロットが生成されますが、sublimetextを使用すると出力は生成されません。 python.exeプロセスを終了し、その後[Finished]が出力されるまで、「思考」を続けます。

Sublimetextがどのように使用されるのか誤解しましたか?

ありがとう。

15
iRoygbiv

私の推測では、Sublime Text 2は独自の環境でコードを起動し、コンソール出力のみをトラップして表示します。 wxPythonなどのGUIを使用する場合にも同じ問題が存在します。

別の回避策は、コマンドプロンプトを開き、手動で起動することです(pythonfile.py)。

EDIT:Here 「WindowsではGUIが抑制されている」と記載されています。

編集2:ここ ページの下部に修正方法がリストされています。

14
Gareth Webber

より適切な方法は、デフォルトで1行追加することですPythonビルドシステムファイル:

"Shell": true

または、追加のPythonビルドシステムを作成します:

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

上記のようにシータの答えを試してみました。それはうまくいきます。 pythonファイルをファイルエクスプローラーから直接実行するように、コンソールがすぐに開閉する場合は、最後に次の行を追加するだけです。

matplotlib.pyplot.show('hold')

ここで答えるのは初めてです。回答形式に従わなかった場合は申し訳ありません。

11
bala83

崇高なテキスト3に注意してください(anacondaパッケージがインストールされている場合)

シータが言ったように、次の方法でカスタムビルドシステムを追加する必要があります。

まず、_\path\to\Sublime Text Build XXXX\Data\Packages_にpython

次に、_python.sublime-build_という名前のファイルをそのフォルダーに配置します。

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

roaldが言ったようにplt.show()を追加することを忘れないでください。

_plt.imshow(image)
plt.show()
_

デモ:

enter image description here

4
応振强

Ubuntuでも同様の問題が発生しました。私は次のようにpandasDataFrameをプロットしようとしていました:

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

しかし、プロットは表示されませんでした。説明したように、plt.show()を実行する必要があることがわかりました ここ

2
Roald