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

2voto

Roland Smith Points 10392

Essayez d'utiliser la méthode "Figure.set_size_inches", avec le mot-clé supplémentaire comme argument. forward=True . Selon le documentation ce devrait redimensionner la fenêtre de la figure.

Que ce soit en fait se produit dépend du système d'exploitation que vous utilisez.

2voto

Antti A Points 441

Dans mes versions (Python 3.6, Eclipse, Windows 7), les snippets donnés ci-dessus ne fonctionnaient pas, mais avec les indications données par Eclipse/pydev (après avoir tapé : mng.), j'ai trouvé :

mng.full_screen_toggle()

Il semble que l'utilisation des mng-commandes ne soit possible que pour le développement local...

1voto

Navin Points 935

Essayez plt.figure(figsize=(6*3.13,4*3.13)) pour agrandir la parcelle.

1voto

ArmandduPlessis Points 69

Ok, voilà ce qui a marché pour moi. J'ai utilisé l'option showMaximize() et cela redimensionne votre fenêtre proportionnellement à la taille de la figure, mais cela ne s'étend pas et ne s'adapte pas à la toile. J'ai résolu ce problème :

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

plt.show()

1voto

CRTejaswi Points 19

Pour le backend basé sur Tk (TkAgg), ces deux options permettent de maximiser et d'afficher la fenêtre en plein écran :

plt.get_current_fig_manager().window.state('zoomed')
plt.get_current_fig_manager().window.attributes('-fullscreen', True)

Lorsque vous tracez dans plusieurs fenêtres, vous devez écrire ceci pour chaque fenêtre :

data = rasterio.open(filepath)

blue, green, red, nir = data.read()
plt.figure(1)
plt.subplot(121); plt.imshow(blue);
plt.subplot(122); plt.imshow(red);
plt.get_current_fig_manager().window.state('zoomed')

rgb = np.dstack((red, green, blue))
nrg = np.dstack((nir, red, green))
plt.figure(2)
plt.subplot(121); plt.imshow(rgb);
plt.subplot(122); plt.imshow(nrg);
plt.get_current_fig_manager().window.state('zoomed')

plt.show()

Ici, les deux "figures" sont tracées dans des fenêtres séparées. En utilisant une variable telle que

figure_manager = plt.get_current_fig_manager()

pourrait ne pas maximiser la deuxième fenêtre, puisque la variable fait toujours référence à la première fenêtre.

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