2015-12-05 7 views
8

私はMac OS X YosemiteでPython v2.7とmatplotlib v1.5.0を実行しています。最近まで、インタラクティブなインタプリタでスクリプトを実行し、プロットを表示してから手動でウィンドウを強制終了することができました。たとえば、matplotlibプロットウィンドウを手動で閉じることができません

import numpy as np 
x = np.arange(1,10) 
y = np.arange(1,10) 
plt.plot(x,y) 
plt.show() 

これは正常に動作するために使用されました。ウィンドウが閉じ、私はプロンプトに戻ります。しかし、今、ウィンドウを閉じるために赤いXを押すと、ウィンドウは開いたままです。私のコマンドプロンプトは戻ってきれいに動作しますが、ウィンドウが止まって、回転するビーチボールが見えます。

enter image description here

(カーソルが画像に表示されないことに注意してください、しかし、あなたは私が近いヒットしましたが、それが開いて立ち往生しているので、赤いXがグレー表示されて見ることができます)。

スクリプトを2回実行して最初のウィンドウを閉じるまでは、次の開いたプロットで同じ問題が発生しています。私はちょうどこれが最近起こったので少し混乱している。今までは、窓がきれいに閉まるでしょう。

これは大きな問題ではありません。なぜなら、Pythonはまだ動作していて、私はまだ新しいプロットを作ることができるからです。しかし、なぜそのウィンドウが突然開かれるのか不思議です。何かアドバイス?

UPDATE

私はインタラクティブなバックエンドを切り替えることで問題を解決しました。インタラクティブバックエンドとしてのQt4AggまたはTkAggのいずれかが問題を解決します。しかし、なぜmacosxとCocoaAggバックエンドがこの動作を示すのかという疑問が残っています。

+0

mplの問題追跡ツールのバグとして報告してください。私は起こっていることが起こっていると思うのは、a)インタラクティブモードではないので、GUIイベントループがバックグラウンドで実行されないb)ウィンドウを閉じるときに操作の問題がある、GUIイベントループがそれは自分の後にクリーンアップを完了することができます。 – tacaswell

+0

更新プログラムを回答して解決済みと投票できますか?これは、同じ問題を抱えている他の人々に役立ちます。 – gabra

+0

完了。質問に回答し、問題はGitHubのmpl issue trackerに投稿されました。 – Nate

答えて

5

インタラクティブバックエンドを切り替えることで問題を解決しました。インタラクティブバックエンドとしてのQt4AggまたはTkAggのいずれかが問題を解決します。

+1

これをチェックしたい人は、これをチェックしてください:http://stackoverflow.com/questions/3285193/how-to-switch-backends-in-matplotlib-python – Rohit

8

恒久的な解決策(ipythonを開くたびにバックエンドを切り替える必要はありません)をmatplotlibrcに変更することができます。

matplotlibrcのファイルを変更することができます(つまり、ローカルディレクトリのみ、グローバルにするなど)。あなたのipythonセッション用に読み込まれた設定ファイルを見つけるには、matplotlib.matplotlib_fname()を使います。私のためのトリックをした

backend  : Qt4Agg 

:ここで私が得たものです:

rcファイルを開くと、行を変更
In [1]: import matplotlib 

In [2]: matplotlib.matplotlib_fname() 
Out[2]: u'/usr/local/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc' 

backend  : macosx 

を読むために。

関連する問題