2017-02-22 45 views
0

pyplotを使って新しい図形を作成すると、画面の左上に自動的に開きます。私は別の位置(例えば、画面の右上)で開くことを望みます。matplotlib Figureのデフォルトのウィンドウ位置を変更するにはどうすればよいですか?

import matplotlib.pyplot as plt 
plt.figure() # opens on the top left 
(x,y,w,h) = ... # The desired position 
plt.get_current_fig_manager().window.setGeometry(x,y,w,h) 

私はmatplotlibのにデフォルトとして所望の位置に設定することができますどのような方法があります:私はこれまでやっている何 は、使用してその後の位置を変更するのですか?私はmatplotlibrcファイルを調べましたが、何の助けにもなりませんでした...私の考えは何ですか?

+0

問題は、ウィンドウを移動するための方法が異なるために異なることですバックエンド。だから私はこれを行う一般的な方法はないと思うので、なぜそれが 'matplotlibrc'ファイルに現れないのでしょう。 http://stackoverflow.com/questions/7449585/how-do-you-set-the-absolute-position-of-figure-windows-with-matplotlib?rq=1 – tom

+0

を参照してくださいありがとうございます。手動で位置を設定して、私はすべてのデフォルトパラメータとして一度それを設定したいと思います。私はこれらのデフォルトがどこに設定されているのか、誰かがそれらを上書きできるかどうかを調べなければなりません。 – user7605211

+0

私の主張は、すべてのバックエンドに対して異なった仕方で行われるので、グローバルにオーバーライドする方法はないと思います。しかし、幸運を見て... – tom

答えて

0

ご回答ありがとうございます。私はこれらのデフォルトがPythonによって管理されていないことを理解しています。 私が見つけた解決策は、新しい図を開き、適切な場所に移動する関数を定義することです。私は定義や関数私はipythonコンソールを開くたびにインポートする必要がありますが、この方法では、私はその後、各図を移動する必要はありません。

# in file mymodule.py 
import matplotlib.pyplot as plt 

def newfigure(num=None): 
     hfig = plt.figure(num) 
     plt.get_current_fig_manager().window.setGeometry(x,y,w,h) 
     return hfig 

# in a python script, or in the interactive console: 
import matplotlib.pyplot as plt 
import mymodule as mm 

plt.figure() # Opens where I don't want it to 
mm.newfigure() # Opens at position (x,y) and with width and height (w,h) 
関連する問題