Maison  >  Article  >  développement back-end  >  Pourquoi mon Matplotlib Savefig produit-il une image vide ?

Pourquoi mon Matplotlib Savefig produit-il une image vide ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-15 08:54:02617parcourir

Why is My Matplotlib Savefig Producing a Blank Image?

Sortie vierge dans la méthode Savefig de Matplotlib

En tentant d'enregistrer les tracés générés à l'aide de Matplotlib, les utilisateurs peuvent rencontrer un problème où l'image enregistrée apparaît vide. Cet article résout ce problème en examinant un extrait de code qui tente d'enregistrer un tracé avec plusieurs sous-tracés.

Le code fourni comporte trois sous-tracés, l'un étant conditionnel en fonction de la disponibilité d'une variable nommée T0. La séquence de code est la suivante :

  1. Création d'une nouvelle figure et de sous-intrigues
  2. Visualisation des données au sein des sous-intrigues
  3. Appel à plt.show pour afficher l'intrigue
  4. Appelez à plt.savefig pour enregistrer le tracé au format PNG

Cependant, l'image enregistrée (tesssttyyy.png) reste vide. Pour résoudre ce problème, plusieurs facteurs doivent être pris en compte :

Impact de l'existence de T0 :

  • Vérifiez le comportement du code lorsque T0 n'est pas Aucun. Dans de tels cas, une sous-intrigue supplémentaire peut être créée, affectant potentiellement les indices de sous-intrigue.

Séquence des appels de fonction :

  • plt.show( ) crée une nouvelle figure. Pour garantir que la figure correcte est enregistrée, il est recommandé d'appeler plt.savefig avant plt.show(), ou de sauvegarder la figure séparément en récupérant la figure actuelle avec plt.gcf().

Basé sur ces considérations, voici deux résolutions suggérées :

Méthode 1 :

  • Appelez plt.savefig avant plt.show() pour enregistrer le chiffre initial avant que le nouveau ne soit généré.
plt.savefig('tessstttyyy.png', dpi=100)
plt.show()
plt.draw()

Méthode 2 :

  • Enregistrez le chiffre actuel avant d'appeler plt.show() en utilisant plt.gcf().
fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)

Conclusion :

Le problème de l'image vide dans la méthode savefig de Matplotlib peut être résolu en ajustant la séquence d'appels de fonction pour garantir que le chiffre correct est enregistré ou en gérant la création conditionnelle de sous-parcelles en fonction de la disponibilité de T0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn