Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menjana Imej PNG dengan Matplotlib pada Sistem Tanpa Paparan?

Bagaimana untuk Menjana Imej PNG dengan Matplotlib pada Sistem Tanpa Paparan?

DDD
DDDasal
2024-12-14 12:40:12543semak imbas

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

Menjana PNG dengan Matplotlib Tanpa Paparan Ditentukan

Apabila bekerja dengan matplotlib tanpa antara muka pengguna grafik (GUI), anda mungkin menghadapi ralat yang menunjukkan "tiada nama paparan dan tiada pembolehubah persekitaran $DISPLAY." Ralat ini berlaku kerana matplotlib cuba menggunakan hujung belakang berasaskan X secara lalai.

Untuk menyelesaikan isu ini bagi sistem tanpa antara muka grafik, ikut langkah berikut:

Langkah 1: Paksa Matplotlib untuk Menggunakan Agg Backend

Sebelum mengimport sebarang komponen daripada pakej matplotlib, masukkan ini kod untuk memaksa matplotlib menggunakan bahagian belakang 'Agg', yang tidak interaktif:

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

Langkah 2: Kendalikan Amaran Berpotensi

Bergantung pada versi matplotlib, anda mungkin menerima amaran mengenai susunan pemilihan bahagian belakang. Pastikan kod ini dilaksanakan sebelum sebarang panggilan lain ke modul matplotlib.

Alternatif: Edit .matplotlibrc

Daripada menentukan bahagian belakang dalam kod, anda boleh mengubah suai konfigurasi matplotlib fail, '.matplotlibrc,' terletak di rumah pengguna direktori:

  • Buka .matplotlibrc menggunakan editor teks.
  • Tambah baris 'backend: Agg' pada fail.
  • Simpan dan tutup fail.

Ini akan memastikan bahawa matplotlib sentiasa menggunakan bahagian belakang 'Agg' tanpa mengira kod perintah pelaksanaan.

Contoh

Pertimbangkan kod Python berikut:

import matplotlib
matplotlib.use('Agg')

import networkx as nx
import matplotlib.pyplot as plt

G = nx.Graph()
G.add_node(1)
G.add_nodes_from([2, 3, 4, 5, 6, 7, 8, 9, 10])

nx.draw(G)
plt.savefig("/var/www/node.png")

Dengan menambahkan 'matplotlib.use('Agg')' sebelum import networkx dan matplotlib, ralat harus diselesaikan, membolehkan anda menjana imej PNG tanpa grafik antara muka.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Imej PNG dengan Matplotlib pada Sistem Tanpa Paparan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn