Cela permet d'afficher la figure dans une interface graphique :
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
Mais comment puis-je enregistrer la figure dans un fichier (par exemple foo.png) ?
Cela permet d'afficher la figure dans une interface graphique :
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
Mais comment puis-je enregistrer la figure dans un fichier (par exemple foo.png) ?
Rien ne fonctionnait pour moi. Le problème est que l'image sauvegardée était très petite et je n'arrivais pas à trouver comment l'agrandir.
Cela semble l'agrandir, mais il ne s'agit toujours pas d'un plein écran.
https://matplotlib.org/stable/api/figure_api.html#matplotlib.figure.Figure.set_size_inches
fig.set_size_inches((w, h))
J'espère que cela aidera quelqu'un.
Vous pouvez enregistrer votre image avec n'importe quelle extension (png, jpg, etc.) et avec la résolution que vous souhaitez. Voici une fonction pour sauvegarder votre image.
import os
def save_fig(fig_id, tight_layout=True, fig_extension="png", resolution=300):
path = os.path.join(IMAGES_PATH, fig_id + "." + fig_extension)
print("Saving figure", fig_id)
if tight_layout:
plt.tight_layout()
plt.savefig(path, format=fig_extension, dpi=resolution)
fig_id' est le nom sous lequel vous souhaitez enregistrer votre figure. J'espère que cela vous aidera :)
Utilise 'agg' car il n'y a pas d'interface utilisateur sur le serveur. Débogage sur ubuntu 21.10 avec gui et VSC. Dans le débogage, j'essaie à la fois d'afficher un tracé et de l'enregistrer dans un fichier pour l'interface web.
J'ai découvert qu'il est nécessaire de sauvegarder avant d'afficher, sinon la parcelle sauvegardée est vierge. Je suppose que l'affichage efface le tracé pour une raison quelconque. Voici ce qu'il faut faire :
plt.savefig(imagePath)
plt.show()
plt.close(fig)
Au lieu de cela :
plt.show()
plt.savefig(imagePath)
plt.close(fig)
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.
91 votes
Il semble que j'ai trouvé la réponse : its pylab.savefig('foo.png')
2 votes
Le lien devrait peut-être renvoyer vers quelque part dans matplotlib.org ?
45 votes
De plus, si l'on n'utilise pas pylab, l'objet figure a une fonction
savefig
également. Vous pouvez donc appelerfig = plt.figure()
puisfig.savefig(...)
.32 votes
De nombreuses réponses plus bas dans la page mentionnent
plt.close(fig)
ce qui est particulièrement important dans les grandes boucles. Sinon, les figures restent ouvertes et en attente dans la mémoire et toutes les figures ouvertes seront affichées lors de l'exécution de la commandeplt.show()
0 votes
Nb : matplotlib.pyplot est préférable : stackoverflow.com/questions/11469336/
0 votes
Voici une bonne ressource pour répondre à cette question : showmecode.info/matplotlib/figure/save-img
0 votes
pylab
ne doit plus être utilisé : Quelle est la méthode recommandée pour tracer des graphiques : matplotlib ou pylab ?