16

matplotlibを呼び出すshow()と、プロットウィンドウが他のすべてのウィンドウの後ろに表示され、すべてを最小化して表示する必要があります。これを防ぐ方法や、プログラムで前面に出す方法はありますか?OSXLionについて。Python 2.7

4

5 に答える 5

1

あなたの質問に対する正確な答えではありませんが、私はデフォルトのpythonコンソールの代わりにipythonを使用しています。で起動すると、ipython --pylabたとえば入力してプロットできます

>> plot([1,3,2])

プロットを前面にポップアップさせます。他にもいくつかの非常に優れた機能があります;)

于 2012-05-16T02:54:48.927 に答える
1

Matplotlib開発者はこの問題を認識しているようです。しかし、https://github.com/matplotlib/matplotlib/issues/596を調べると、解決策が得られるまでしばらく時間がかかるようです。これは、figure.show()が画面スペースを「盗む」のが面倒だと感じる人がいるためと思われます。 。

于 2012-10-04T22:10:01.190 に答える
1

上手。この回答は、受け入れられた回答へのコメントで示されていますが、問題をうまく解決するため、別の場所として配置する価値があると思います。著者の問題に加えて、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
于 2018-08-03T16:56:07.477 に答える
0

OS固有の場合もありますが、インタラクティブなプロット(指示するとすぐにプロットされます)を使用すると、Ubuntuで作成されるとすぐに図が前面に表示されます。

import pylab as P
P.ion()
P.figure(1)
P.plot([1,2,3],[1,4,9])
于 2012-05-16T01:38:58.057 に答える
0

私はニックポンラインと同じセットアップをしています。私のために働くものは次のとおりです。

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_()
于 2013-07-27T01:14:02.743 に答える