Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich PNG-Bilder mit Matplotlib, wenn DISPLAY nicht definiert ist?

Wie erstelle ich PNG-Bilder mit Matplotlib, wenn DISPLAY nicht definiert ist?

DDD
DDDOriginal
2024-12-09 14:54:13471Durchsuche

How to Generate PNG Images with Matplotlib When DISPLAY is Undefined?

Generieren eines PNG mit matplotlib, wenn DISPLAY undefiniert ist

Problem:

Beim Versuch Wenn Sie mit matplotlib ein PNG-Bild erstellen, ohne dass eine DISPLAY-Umgebungsvariable definiert ist, kann es zu Fehlermeldungen kommen, die darauf hinweisen, dass matplotlib kein geeignetes Bild finden kann Backend.

Ursache:

matplotlib verwendet standardmäßig ein X-basiertes Backend, das eine gültige DISPLAY-Variable erfordert. Wenn DISPLAY nicht definiert ist, löst Matplotlib einen Fehler aus.

Lösung: Verwenden Sie das „Agg“-Backend

Um dieses Problem zu beheben, zwingen Sie Matplotlib, das „Agg“ zu verwenden. Backend, das keine grafische Darstellung erfordert. Dies kann erreicht werden, indem vor allen anderen Matplotlib-Importen der folgende Code hinzugefügt wird:

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')

Erklärung:

Das Agg-Backend ist ein nicht interaktives Backend, das Folgendes bereitstellt: Möglichkeit, Zahlen als Dateien zu speichern, ohne dass eine grafische Darstellung erforderlich ist. Indem Sie matplotlib so einstellen, dass dieses Backend verwendet wird, können Sie PNG-Bilder auch ohne eine gültige DISPLAY-Variable generieren.

Alternative Lösungen:

  • Setzen Sie die DISPLAY-Variable auf a Gültiges Anzeigegerät.
  • Verwenden Sie ein anderes Python-Modul, das für das Bild nicht auf Matplotlib angewiesen ist Generation.
  • Legen Sie das Backend in der .matplotlibrc-Datei fest:
backend : Agg

Das obige ist der detaillierte Inhalt vonWie erstelle ich PNG-Bilder mit Matplotlib, wenn DISPLAY nicht definiert ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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