Heim > Backend-Entwicklung > Python-Tutorial > Warum erzeugt mein Matplotlib Savefig ein leeres Bild?

Warum erzeugt mein Matplotlib Savefig ein leeres Bild?

Susan Sarandon
Freigeben: 2024-11-15 08:54:02
Original
761 Leute haben es durchsucht

Why is My Matplotlib Savefig Producing a Blank Image?

Leere Ausgabe in der Savefig-Methode von Matplotlib

Beim Versuch, mit Matplotlib erstellte Diagramme zu speichern, kann es bei Benutzern zu einem Problem kommen, bei dem das gespeicherte Bild angezeigt wird leer. In diesem Artikel wird dieses Problem behoben, indem ein Codeausschnitt untersucht wird, der versucht, einen Plot mit mehreren Unterplots zu speichern.

Der bereitgestellte Code enthält drei Unterplots, von denen einer von der Verfügbarkeit einer Variablen namens T0 abhängig ist. Die Codesequenz folgt:

  1. Erstellung einer neuen Figur und Subplots
  2. Datenvisualisierung innerhalb der Subplots
  3. Aufruf von plt.show, um den Plot anzuzeigen
  4. Rufen Sie plt.savefig auf, um den Plot in PNG zu speichern Format

Das gespeicherte Bild (tesssttyyy.png) bleibt jedoch leer. Um dieses Problem zu beheben, müssen mehrere Faktoren berücksichtigt werden:

Auswirkungen der Existenz von T0:

  • Überprüfen Sie das Verhalten des Codes, wenn T0 nicht „None“ ist. In solchen Fällen kann ein zusätzlicher Nebenplot erstellt werden, der sich möglicherweise auf die Subplot-Indizes auswirkt.

Sequenz der Funktionsaufrufe:

  • plt.show( ) erstellt eine neue Figur. Um sicherzustellen, dass die richtige Abbildung gespeichert wird, wird empfohlen, plt.savefig vor plt.show() aufzurufen oder die Abbildung separat zu speichern, indem die aktuelle Abbildung mit plt.gcf() abgerufen wird.

Basierend Zu diesen Überlegungen finden Sie hier zwei Lösungsvorschläge:

Methode 1:

  • Rufen Sie plt.savefig vor plt.show() auf, um die ursprüngliche Zahl zu speichern, bevor die neue generiert wird.
plt.savefig('tessstttyyy.png', dpi=100)
plt.show()
plt.draw()
Nach dem Login kopieren

Methode 2:

  • Speichern Sie die aktuelle Zahl, bevor Sie plt.show() aufrufen, indem Sie verwenden plt.gcf().
fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)
Nach dem Login kopieren

Fazit:

Das Problem mit leeren Bildern in der Savefig-Methode von Matplotlib kann durch Anpassen der Reihenfolge der Funktionsaufrufe behoben werden um sicherzustellen, dass die richtige Zahl gespeichert wird, oder indem die bedingte Erstellung von Nebenhandlungen basierend auf der Verfügbarkeit von T0 durchgeführt wird.

Das obige ist der detaillierte Inhalt vonWarum erzeugt mein Matplotlib Savefig ein leeres Bild?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage