Comment optimiser une plt.show() de la fenêtre à l'aide de Python
Juste pour la curiosité, je voudrais savoir comment faire cela dans le code ci-dessous. J'ai été à la recherche d'une réponse, mais 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()
- Spoiler, travaillant sur Windows:
plt.get_current_fig_manager().window.state('zoomed')
puisplt.show()
.
Vous devez vous connecter pour publier un commentaire.
J'ai l'habitude d'utiliser
avant l'appel à
plt.show()
, et j'obtiens une fenêtre agrandie. Cela fonctionne pour le 'wx' backend seulement.EDIT:
pour Qt4Agg backend, voir kwerenda de réponse.
mng.frame.Maximize(True) AttributeError: FigureManagerTkAgg instance has no attribute 'frame'
dans Matplotlib 1.2.0MacOSX
backend? LeFigureManagerMac
semble avoir ni l'attributwindow
niframe
.depuis que je suis sur le zéro réputation je peux laisser aucune autre marque qu'une nouvelle réponse
Je suis sur un Windows (WIN7), l'exécution de Python 2.7.5 & Matplotlib 1.3.1
J'ai été en mesure de maximiser la Figure de windows pour TkAgg, QT4Agg, et wxAgg en utilisant les lignes suivantes:
Espère que ce résumé de la réponse à la question précédente (et quelques ajouts) dans un exemple de travail (au moins pour windows) permet de.
Cheers
figManager.window.showMaximized()
, le agrandie en plein écran de la fenêtre juste poped vers le haut. La ligne suivante:plt.show()
juste montrer une autre fenêtre qui trace les données dans une taille normale de la fenêtre._tkinter.TclError: bad argument "zoomed": must be normal, iconic, or withdrawn
(Ubuntu 16.04).Avec Qt backend (FigureManagerQT) bon de commande est:
plt.show()
par la suite. Réponse très bien, fonctionne sur windows!plt.show()
.Ce qui rend la fenêtre de prendre le plein écran, pour moi, sous Ubuntu 12.04 avec le TkAgg backend:
Pour moi rien de ce qui précède travaillé. J'utilise les Savoirs traditionnels backend sur Ubuntu 14.04 qui contient matplotlib 1.3.1.
Le code suivant crée un plein écran la fenêtre du tracé qui n'est pas la même que la maximisation mais il sert mon but bien:
Cela devrait fonctionner (à moins avec TkAgg):
(adopté à partir de ci-dessus et En utilisant Tkinter, il est un moyen d'obtenir le seuil de la taille de l'écran sans visiblement zoom d'une fenêtre?)
TkAgg
, pasTkApp
, droit?- Je obtenir
mng.frame.Maximize(True) AttributeError: FigureManagerTkAgg instance has no attribute 'frame'
ainsi.Puis j'ai regardé à travers les attributs
mng
a, et j'ai trouvé ceci:Qui a fonctionné pour moi.
Donc pour les personnes qui ont le même problème, vous pouvez essayer cette.
Par le chemin, mon Matplotlib version 1.3.1.
plt.show()
. Pas sur cette fenêtre plein écran, une suggestion?C'est le genre de hacky et probablement pas de portable, à n'utiliser que si vous êtes à la recherche pour rapide et sale. Si je viens de mettre la figure beaucoup plus grande que l'écran, il faut exactement la totalité de l'écran.
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, c'est juste une influence maximale sur l'un d'eux).
J'ai trouvé cela pour le mode plein écran sur Ubuntu
Essayer
plt.figure(figsize=(6*3.13,4*3.13))
pour rendre l'intrigue plus.Appuyant sur la
f
clé (ouctrl+f
en 1.2rc1) lorsque porté sur un lot, en plein écran dans une fenêtre du tracé. Pas tout à fait la maximisation, mais peut-être mieux.Autres que que, pour maximiser, vous devrez utiliser le Toolkit graphique des commandes spécifiques (s'ils existent pour votre backend).
HTH
Dans mes versions (Python 3.6, Eclipse, Windows 7), des extraits de code donné ci-dessus ne fonctionne pas, mais avec les conseils donnés par Eclipse/pydev (après avoir tapé: mng.), J'ai trouvé:
Il semble que l'utilisation de mng-commandes est ok seulement pour le développement local...
Essayer d'utiliser 'la Figure.set_size_inches " la méthode, avec en plus l'argument mot-clé
forward=True
. Selon le la documentation, ce devrait redimensionner la figure de la fenêtre.Si fait arrive dépendra du système d'exploitation que vous utilisez.
Ok, donc c'est ce qui a fonctionné pour moi. J'ai fait l'ensemble de la showMaximize option() et il n'redimensionner votre fenêtre en proportion de la taille de la figure, mais il ne se développe pas et "ajustement" de la toile. J'ai résolu ce problème par:
Une solution qui a travaillé sur Win 10 parfaitement.
De mon mieux jusqu'à présent, le soutien de différents backends:
Ce n'est pas nécessairement à maximiser votre fenêtre, mais il ne redimensionner votre fenêtre en proportion de la taille de la figure:
Cela pourrait aussi aider: http://matplotlib.1069221.n5.nabble.com/Resizing-figure-windows-td11424.html
Suivants peuvent travailler avec tous les backends, mais je l'ai testé uniquement sur l'intervalle QT: