Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich PNG-Bilder mit Matplotlib auf Systemen ohne Display?

Wie erstelle ich PNG-Bilder mit Matplotlib auf Systemen ohne Display?

DDD
DDDOriginal
2024-12-14 12:40:12543Durchsuche

How to Generate PNG Images with Matplotlib on Systems Without a Display?

Generieren von PNG mit Matplotlib ohne definierte Anzeige

Beim Arbeiten mit Matplotlib ohne grafische Benutzeroberfläche (GUI) kann eine Fehlermeldung auftreten „Kein Anzeigename und keine Umgebungsvariable $DISPLAY.“ Dieser Fehler tritt auf, weil matplotlib standardmäßig versucht, ein Matplotlib zur Verwendung des Agg-Backends

Bevor Sie Komponenten aus dem Matplotlib-Paket importieren, fügen Sie diesen Code zum Erzwingen ein matplotlib, um das „Agg“-Backend zu verwenden, das nicht interaktiv ist:

Schritt 2: Mögliche Warnungen behandeln

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')
Abhängig von der Version von matplotlib, Sie Möglicherweise erhalten Sie eine Warnung bezüglich der Reihenfolge der Backend-Auswahl. Stellen Sie sicher, dass dieser Code vor allen anderen Aufrufen von Matplotlib-Modulen ausgeführt wird.

Alternative: .matplotlibrc bearbeiten

Anstatt das Backend im Code anzugeben, können Sie die Matplotlib-Konfiguration ändern Datei „.matplotlibrc“ im Home-Verzeichnis des Benutzers:

Öffnen .matplotlibrc mit einem Texteditor.

Fügen Sie der Datei die Zeile „backend: Agg“ hinzu.

    Speichern und schließen Sie die Datei.
  • Dadurch wird sichergestellt matplotlib verwendet unabhängig von der Codeausführung immer das Backend „Agg“. order.
  • Beispiel

Betrachten Sie den folgenden Python-Code:

Durch Hinzufügen von 'matplotlib.use('Agg')' vor dem Beim Importieren von networkx und matplotlib sollte der Fehler behoben sein, sodass Sie ein PNG-Bild ohne grafische Oberfläche generieren können.

Das obige ist der detaillierte Inhalt vonWie erstelle ich PNG-Bilder mit Matplotlib auf Systemen ohne Display?. 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