matplotlibを呼び出すshow()
と、プロットウィンドウが他のすべてのウィンドウの後ろに表示され、すべてを最小化して表示する必要があります。これを防ぐ方法や、プログラムで前面に出す方法はありますか?OSXLionについて。Python 2.7
5 に答える
あなたの質問に対する正確な答えではありませんが、私はデフォルトのpythonコンソールの代わりにipythonを使用しています。で起動すると、ipython --pylab
たとえば入力してプロットできます
>> plot([1,3,2])
プロットを前面にポップアップさせます。他にもいくつかの非常に優れた機能があります;)
Matplotlib開発者はこの問題を認識しているようです。しかし、https://github.com/matplotlib/matplotlib/issues/596を調べると、解決策が得られるまでしばらく時間がかかるようです。これは、figure.show()が画面スペースを「盗む」のが面倒だと感じる人がいるためと思われます。 。
上手。この回答は、受け入れられた回答へのコメントで示されていますが、問題をうまく解決するため、別の場所として配置する価値があると思います。著者の問題に加えて、matplotlibウィンドウがアクティブなウィンドウのトレイにないため、によって切り替えることができないという問題がありました<Alt>+<Tab>
。
matplotlibのデフォルトのバックエンドを変更すると、macosx
すべてが解決しました。次のように、コードですぐに試すことができます。
import matplotlib
matplotlib.use("Qt5agg")
Qt5agg
システムに表示されない可能性がある場合は、表示されているものを選択してください。あなたはそれらを見つけることができます:
import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
それが役に立った場合は、構成のバックエンドを変更することをお勧めします。そのために最初にそれを見つけてください:
import matplotlib
matplotlib.matplotlib_fname()
次に、backend:
値を変更します。
backend : macosx
バックエンドに。私は最後に使用しました:
backend : TkAgg
OS固有の場合もありますが、インタラクティブなプロット(指示するとすぐにプロットされます)を使用すると、Ubuntuで作成されるとすぐに図が前面に表示されます。
import pylab as P
P.ion()
P.figure(1)
P.plot([1,2,3],[1,4,9])
私はニックポンラインと同じセットアップをしています。私のために働くものは次のとおりです。
from pylab import get_current_fig_manager()
get_current_fig_manager().window.raise_()
複数の数字がある場合、これは現在アクティブな数字のみを表示します。その場合、次のことが機能することがわかりました。
fig1=figure(1)
cfm1=get_current_fig_manager().window
fig2=figure(2)
cfm2=get_current_fig_manager().window
...
cfm1.activateWindow()
cfm1._raise()
pause(.1) # or something else that uses up some time
cfm2.activateWindow()
cfm2.raise_()