Je construis un petit utilitaire graphique en utilisant Pandas et MatPlotLib pour analyser les données et les graphiques de sortie d'une machine au travail.
Lorsque je génère le graphique en utilisant
plt.show()
Je me retrouve avec une image peu claire qui a des légendes et des étiquettes qui se pressent comme ça.
Cependant, étendre la fenêtre en plein écran résout mon problème, en repositionnant tout d'une manière qui permet au graphique d'être visible.
Je sauvegarde ensuite le graphique dans un .png comme ça
plt.savefig('sampleFileName.png')
Mais lorsqu'il enregistre dans l'image, la version correcte plein écran du tracé n'est pas enregistrée, mais plutôt la version par défaut défectueuse.
Comment puis-je enregistrer le plt.show () plein écran du tracé en .png?
J'espère que je ne suis pas trop déroutant.
Merci de votre aide!
La méthode que vous utilisez pour maximiser la taille de la fenêtre dépend du backend matplotlib que vous utilisez. Veuillez consulter l'exemple suivant pour les 3 backends les plus courants:
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1,2], [1,2])
# Option 1
# QT backend
manager = plt.get_current_fig_manager()
manager.window.showMaximized()
# Option 2
# TkAgg backend
manager = plt.get_current_fig_manager()
manager.resize(*manager.window.maxsize())
# Option 3
# WX backend
manager = plt.get_current_fig_manager()
manager.frame.Maximize(True)
plt.show()
plt.savefig('sampleFileName.png')
Vous pouvez déterminer le backend que vous utilisez avec la commande matplotlib.get_backend()
. Lorsque vous enregistrez la version maximisée de la figure, elle enregistre une image plus grande comme vous le souhaitez.
Comme une option de plus, je pense qu'il vaut également la peine
plt.savefig('filename.png', bbox_inches='tight')
Ceci est particulièrement utile si vous faites subplots
qui a des étiquettes d'axe qui semblent encombrées.
Pour ceux qui reçoivent des erreurs dans les réponses ci-dessus, cela a fonctionné pour moi.
#Show full screen
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()