144 votes

Comment maximiser une fenêtre plt.show() en utilisant Python

Par curiosité, j'aimerais savoir comment faire dans le code ci-dessous. J'ai cherché une réponse mais c'est inutile.

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

46voto

Giulio Ghirardo Points 3742

J'utilise habituellement

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

avant l'appel à plt.show() et j'obtiens une fenêtre agrandie. Cela ne fonctionne que pour le backend 'wx'.

EDIT :

pour le backend de Qt4Agg, voir le site de kwerenda réponse .

17voto

Martin R. Points 581

Mon meilleur effort jusqu'à présent, en supportant différents backends :

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)

11voto

Westly White Points 116

J'ai trouvé ceci pour le mode plein écran sur Ubuntu

#Show full screen
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()

10voto

Alan Points 39

Je reçois mng.frame.Maximize(True) AttributeError: FigureManagerTkAgg instance has no attribute 'frame' également.

Puis j'ai regardé les attributs mng a, et j'ai trouvé ça :

mng.window.showMaximized()

Ça a marché pour moi.

Donc pour les personnes qui ont le même problème, vous pouvez essayer ceci.

Au fait, ma version de Matplotlib est 1.3.1.

10voto

Mark Points 1278

C'est un peu bricolé et probablement pas portable, ne l'utilisez que si vous cherchez du rapide et du sale. Si je place la figure beaucoup plus grande que l'écran, elle prend exactement tout l'écran.

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

En fait, dans Ubuntu 16.04 avec Qt4Agg, il maximise la fenêtre (pas en plein écran) si elle est plus grande que l'écran. (Si vous avez deux moniteurs, il la maximise sur l'un d'eux).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X