2012-09-15 255 views
46

好奇心のために、以下のコードでこれを行う方法を知りたいと思います。私は答えを探していますが、役に立たないです。Pythonを使用してplt.show()ウィンドウを最大化する方法

import numpy as np 
import matplotlib.pyplot as plt 
data=np.random.exponential(scale=180, size=10000) 
print ('el valor medio de la distribucion exponencial es: ') 
print np.average(data) 
plt.hist(data,bins=len(data)**0.5,normed=True, cumulative=True, facecolor='red', label='datos tamano paqutes acumulativa', alpha=0.5) 
plt.legend() 
plt.xlabel('algo') 
plt.ylabel('algo') 
plt.grid() 
plt.show() 

答えて

23

私は通常plt.show()を呼び出す前に

mng = plt.get_current_fig_manager() 
mng.frame.Maximize(True) 

を使用して、私が最大化されたウィンドウを取得します。これは 'wx'バックエンドでのみ有効です。

EDIT:

Qt4Aggバックエンドのために、kwerendaのanswerを参照してください。

+11

これを使って、mng.frame.Maximize(True)を取得します。 AttributeError:FigureManagerTkAggインスタンスにMatplotlib 1.2.0の属性 'frame'がありません。 – Junuxx

+0

上記はWindows上で動作します。 Mac? – gg349

+2

いいえ、私はWindows上です。 – Junuxx

2

plt.figure(figsize=(6*3.13,4*3.13))を試してプロットを大きくしてください。

3

プロットに焦点を合わせたときにfキー(または1.2rc1でctrl+f)を押すとプロットウィンドウがフルスクリーン表示されます。非常に最大ではありませんが、おそらくより良いでしょう。

それ以外の場合、実際に最大化するには、GUI Toolkit固有のコマンド(特定のバックエンドに存在するコマンド)を使用する必要があります。

HTH

+0

これは、私が誤ってそのフルスクリーンの私のウィンドウに当たったキーを説明しています! (これを元に戻す方法) – cxrodgers

1

余分なキーワード引数forward=Trueで、 'Figure.set_size_inches' メソッドを使用してみてください。 documentationによれば、こののFigureウィンドウのサイズを変更する必要があります。

Wetherその実際にはは、使用しているオペレーティングシステムによって異なります。

26

このウィンドウがTkAggバックエンドでのUbuntu 12.04の下で、私のためにフルスクリーンを取る作る:Qtのバックエンド(FigureManagerQT)適切なコマンドで

mng = plt.get_current_fig_manager() 
    mng.resize(*mng.window.maxsize()) 
+2

これはマルチモニターの設定に奇妙な影響を与えていることに注意してください。ウィンドウは最大化されず、すべてのモニタを使い果たします。 – user1202136

+0

これは、最大化されたウィンドウ(画面の端にスナップする)を作成するのではなく、最大化されていないウィンドウを作成します。 – HelloGoodbye

+0

これは、Ubuntu 14.04のウィンドウを最大限に成功させ、すべてのボタンでトップバーを維持します。 – iamgin

39

は次のとおりです。

figManager = plt.get_current_fig_manager() 
figManager.window.showMaximized() 
14

このすべき仕事(TkAggと少なくとも時):

wm = plt.get_current_fig_manager() 
wm.window.state('zoomed') 

(以上から採用され、Using Tkinter, is there a way to get the usable screen size without visibly zooming a window?

+0

よろしく!これは私のために働いた。それは、画面の端にスナップする最大化されたウィンドウを作成し、必要に応じて、最小化、最大化/復元、および終了ボタンを備えています。 – HelloGoodbye

+1

しかし、これは 'TkAgg'ではなく' TkApp'で動作するという意味ですか? – HelloGoodbye

+0

良いキャッチ(おそらくタイプミス)! TkAggはTkのバックエンドです。 – dinvlad

3

mng.frame.Maximize(True) AttributeError: FigureManagerTkAgg instance has no attribute 'frame'も得られます。

は、その後、私はmngが持つ属性を通じて見て、私はこれが見つかりました:

mng.window.showMaximized() 

私のために働いたことを。

同じ問題を抱えている人には、これを試すことができます。

ところで、私のMatplotlibバージョンは1.3.1です。

+0

ありがとう!このソリューションは私のためにうまくいきました。 Redhat Enterprise Linux 6、python 2.7.10、matplotlib 1.4.3で動作します。 – CrossEntropy

+0

これはフルスクリーンのウィンドウを表示することがわかりますが、 'plt.show()'と入力すると、私のプロットは別のウィンドウに表示されます。このフルスクリーンウィンドウではなく、どんな提案ですか? – StayFoolish

83

私は新しい評判よりも他の印を残すことはできません 私はWindows(WIN7)で、Python 2.7.5を実行しています& Matplotlib 1.3。

from matplotlib import pyplot as plt 

### for 'TkAgg' backend 
plt.figure(1) 
plt.switch_backend('TkAgg') #TkAgg (instead Qt4Agg) 
print '#1 Backend:',plt.get_backend() 
plt.plot([1,2,6,4]) 
mng = plt.get_current_fig_manager() 
### works on Ubuntu??? >> did NOT working on windows 
# mng.resize(*mng.window.maxsize()) 
mng.window.state('zoomed') #works fine on Windows! 
plt.show() #close the figure to run the next section 

### for 'wxAgg' backend 
plt.figure(2) 
plt.switch_backend('wxAgg') 
print '#2 Backend:',plt.get_backend() 
plt.plot([1,2,6,4]) 
mng = plt.get_current_fig_manager() 
mng.frame.Maximize(True) 
plt.show() #close the figure to run the next section 

### for 'Qt4Agg' backend 
plt.figure(3) 
plt.switch_backend('QT4Agg') #default on my system 
print '#3 Backend:',plt.get_backend() 
plt.plot([1,2,6,4]) 
figManager = plt.get_current_fig_manager() 
figManager.window.showMaximized() 
plt.show() 

ホープ実施例で合成前の答え(およびいくつかの追加)のこの要約(AT:

1私は、次の行を使用してTkAgg、QT4Agg、及びwxAggについては、図ウィンドウを最大化することができました少なくともウィンドウのために)役立ちます。 乾杯。

+3

これは受け入れられた答えであるはずです – fmonegaglia

+4

###はUbuntuで動作しますか? >> Windows上で動作しませんでした mng.resize(* mng.window.maxsize())#私のためにLinux上で完璧に動作します – Daniele

+1

@Daniele、あなたのソリューションはUbuntuのTkAggで動作します。ありがとう!しかし、解析するのに時間がかかりました;) "mng.resize ..."の前にすべてを取り除くこともできます。 – BenB

20

私の場合は上記のものは何も働かなかった。私はmatplotlib 1.3.1を含んでいるUbuntu 14.04のTkバックエンドを使用します。

次のコードでは最大と同じではありませんが、それはうまく私の目的を果たすフルスクリーン描画ウィンドウを作成します。

from matplotlib import pyplot as plt 
mng = plt.get_current_fig_manager() 
mng.full_screen_toggle() 
plt.show() 
+0

これは私のために働いた解決策でもありました(ただし、フルスクリーンになりますが、最大化されたウィンドウにはなりません)。 Redhat Enterprise Linux 6、python 2.7.10、matplotlib 1.4.3で動作します。 – CrossEntropy

+1

Windows 10 x64、python 3.5のVisual Studio 2015で私の仕事をしましたが、画面の上部にあるようにウィンドウ枠にアクセスできず、図を閉じることができませんでした。 –

+1

私にとっては、最大化されたウィンドウも作成されませんが、フルスクリーンのウィンドウも作成されます。私はどんな最小化も得ず、最大化/復元し、通常のウィンドウと同じようにボタンを閉じ、タスクバーのウィンドウを右クリックして閉じることができました。 – HelloGoodbye

0

これは必ずしもあなたのウィンドウを最大化しませんが、それは比例して、あなたのウィンドウのサイズを変更しません図形の大きさに:

from matplotlib import pyplot as plt 
F = gcf() 
Size = F.get_size_inches() 
F.set_size_inches(Size[0]*2, Size[1]*2, forward=True)#Set forward to True to resize window along with plot in figure. 
plt.show() #or plt.imshow(z_array) if using an animation, where z_array is a matrix or numpy array 

また、これは役立つかもしれない:http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html

0

を以下は、すべてのバックエンドで動作することがあり、しかし、私はQTでそれをテストした:

import numpy as np 
import matplotlib.pyplot as plt 
import time 

plt.switch_backend('QT4Agg') #default on my system 
print('Backend: {}'.format(plt.get_backend())) 

fig = plt.figure() 
ax = fig.add_axes([0,0, 1,1]) 
ax.axis([0,10, 0,10]) 
ax.plot(5, 5, 'ro') 

mng = plt._pylab_helpers.Gcf.figs.get(fig.number, None) 

mng.window.showMaximized() #maximize the figure 
time.sleep(3) 
mng.window.showMinimized() #minimize the figure 
time.sleep(3) 
mng.window.showNormal() #normal figure 
time.sleep(3) 
mng.window.hide() #hide the figure 
time.sleep(3) 
fig.show() #show the previously hidden figure 

ax.plot(6,6, 'bo') #just to check that everything is ok 
plt.show() 
0

[OK]をので、これは私のために働いていたものです。私はshowMaximize()オプション全体を行い、Figureのサイズに比例してウィンドウのサイズを変更しますが、キャンバスを拡張してフィットさせません。あなたが迅速かつ汚い探している場合にのみ、それを使用し、これは一種のハック、おそらくポータブルではありません

mng = plt.get_current_fig_manager()           
mng.window.showMaximized() 
plt.tight_layout()  
plt.savefig('Images/SAVES_PIC_AS_PDF.pdf') 

plt.show() 
2

:私はこのことで解決しました。私がスクリーンよりもはるかに大きな数字を設定すると、画面全体が正確に表示されます。

fig = figure(figsize=(80, 60)) 

は実際には、Qt4AggとUbuntuの16.04で、それが画面よりも大きいかどう窓(ないフルスクリーン)を最大化します。 (モニターが2つある場合は、そのうちの1つでモニターを最大化するだけです)。

+0

私のために働く!私は画面のサイズを取得しようとしています。 – StayFoolish

関連する問題