120

好奇心のために、以下のコードでこれを行う方法を知りたいです。私は答えを探していましたが、役に立ちません。

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()
4

23 に答える 23

187

私は Windows (WIN7) を使用しており、Python 2.7.5 と Matplotlib 1.3.1 を実行しています。

次の行を使用して、TkAgg、QT4Agg、および wxAgg の Figure ウィンドウを最大化することができました。

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()

複数の数値を最大化したい場合は、使用できます

for fig in figs:
    mng = fig.canvas.manager
    # ...

以前の回答(およびいくつかの追加)のこの要約が、実際の例(少なくともWindowsの場合)に組み合わされていることを願っています。乾杯

于 2014-03-15T01:12:12.970 に答える
95

Qt バックエンド (FigureManagerQT) では、適切なコマンドは次のとおりです。

figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
于 2013-09-16T09:39:03.683 に答える
56

これにより、TkAgg バックエンドを備えた Ubuntu 12.04 でウィンドウが全画面表示されます。

    mng = plt.get_current_fig_manager()
    mng.resize(*mng.window.maxsize())
于 2013-01-26T13:10:43.760 に答える
46

私にとっては、上記のどれもうまくいきませんでした。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()
于 2014-05-20T08:59:14.470 に答える
45

これは動作するはずです (少なくともTkAgg では):

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

(上記およびUsing Tkinter から採用、ウィンドウを視覚的にズームせずに使用可能な画面サイズを取得する方法はありますか? )

于 2013-11-06T22:08:00.787 に答える
44

私は通常使用します

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

への呼び出しの前にplt.show()、最大化されたウィンドウが表示されます。これは「wx」バックエンドでのみ機能します。

編集:

Qt4Agg バックエンドについては、kwerenda の回答を参照してください。

于 2012-09-26T09:53:02.323 に答える
14

これまでのところ、さまざまなバックエンドをサポートするための最善の努力:

from platform import system
def plt_maximize():
    # See discussion: https://stackoverflow.com/questions/12439588/how-to-maximize-a-plt-show-window-using-python
    backend = plt.get_backend()
    cfm = plt.get_current_fig_manager()
    if backend == "wxAgg":
        cfm.frame.Maximize(True)
    elif backend == "TkAgg":
        if system() == "Windows":
            cfm.window.state("zoomed")  # This is windows only
        else:
            cfm.resize(*cfm.window.maxsize())
    elif backend == "QT4Agg":
        cfm.window.showMaximized()
    elif callable(getattr(cfm, "full_screen_toggle", None)):
        if not getattr(cfm, "flag_is_max", None):
            cfm.full_screen_toggle()
            cfm.flag_is_max = True
    else:
        raise RuntimeError("plt_maximize() is not implemented for current backend:", backend)
于 2019-02-15T11:46:34.957 に答える
6

Win 10 で問題なく動作する唯一のソリューションです。

import matplotlib.pyplot as plt

plt.plot(x_data, y_data)

mng = plt.get_current_fig_manager()
mng.window.state("zoomed")
plt.show()
于 2018-11-23T15:21:11.833 に答える
3

fプロットにフォーカスがあるときにキー (またはctrl+f1.2rc1) を押すと、プロット ウィンドウが全画面表示されます。完全に最大化するわけではありませんが、おそらくそれ以上です。

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

HTH

于 2012-09-16T07:14:47.277 に答える
2

追加のキーワード引数を指定して、'Figure.set_size_inches' メソッドを使用してみてくださいforward=Trueドキュメントによると、これにより Figure ウィンドウのサイズが変更されます。

それが実際に起こるかどうかは、使用しているオペレーティング システムによって異なります。

于 2012-09-16T15:43:56.770 に答える
1

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

于 2012-09-15T17:37:18.423 に答える
1

わかりましたので、これが私のために働いたものです。showMaximize() オプション全体を実行しましたが、図のサイズに比例してウィンドウのサイズが変更されますが、キャンバスを拡大して「合わせる」ことはできません。私はこれを解決しました:

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

plt.show()
于 2016-11-05T10:42:55.137 に答える
0

これは必ずしもウィンドウを最大化するわけではありませんが、Figure のサイズに比例してウィンドウのサイズを変更します。

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

于 2014-05-28T05:43:20.737 に答える