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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-30 15:20:10479Durchsuche

How to Generate PNG Images with Matplotlib When the DISPLAY Variable Is Undefined?

Generieren eines PNG mit Matplotlib, wenn DISPLAY undefiniert ist

In Python ist Matplotlib eine beliebte Bibliothek zum Erstellen statischer, animierter und interaktiver Visualisierungen . Wenn jedoch DISPLAY in der Umgebung nicht festgelegt ist, kann der Versuch, mit matplotlib ein PNG-Bild zu generieren, zur Fehlermeldung „Kein Anzeigename und keine Umgebungsvariable $DISPLAY“ führen. Dieser Fehler tritt auf, weil das Standard-Backend von Matplotlib einen Agg ist ein nicht interaktives Backend, das keinen X-Server erfordert und die Erstellung von Bildern in Headless-Umgebungen ermöglicht.

So implementieren Sie diese Lösung:

Platzieren Sie dies Code am Anfang Ihres Skripts, bevor Sie andere Matplotlib-Submodule wie Pyplot importieren. Indem wir das Backend vor dem Import von Pyplot auf Agg setzen, stellen wir sicher, dass Matplotlib nicht versucht, ein X-verwendendes Backend zu verwenden.
import matplotlib
# Force matplotlib to use the Agg backend
matplotlib.use('Agg')

Alternativ können Sie das Backend dauerhaft festlegen, indem Sie Ihre .matplotlibrc-Konfigurationsdatei ändern. Legen Sie im Backend-Bereich Folgendes fest:

Diese globale Einstellung macht die explizite Angabe des Backends in Ihren Skripten überflüssig.
backend : Agg

Sobald das entsprechende Backend konfiguriert ist, können Sie PNG generieren Bilder mit Matplotlib, ohne dass der Fehler „DISPLAY undefiniert“ auftritt.

Das obige ist der detaillierte Inhalt vonWie erstelle ich PNG-Bilder mit Matplotlib, wenn die DISPLAY-Variable 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