Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menjana Imej PNG dengan Matplotlib Apabila DISPLAY Tidak Ditakrifkan?

Bagaimana untuk Menjana Imej PNG dengan Matplotlib Apabila DISPLAY Tidak Ditakrifkan?

DDD
DDDasal
2024-12-09 14:54:13475semak imbas

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

Menjana PNG dengan matplotlib Apabila PAPARAN Tidak Ditakrifkan

Masalah:

Apabila cuba untuk buat imej PNG menggunakan matplotlib tanpa pembolehubah persekitaran DISPLAY yang ditentukan, anda mungkin menghadapi ralat menunjukkan bahawa matplotlib tidak dapat mencari hujung belakang yang sesuai.

Punca:

matplotlib lalai menggunakan hujung belakang berasaskan X, yang memerlukan pembolehubah DISPLAY yang sah. Apabila DISPLAY tidak ditentukan, matplotlib akan menimbulkan ralat.

Penyelesaian: Gunakan Bahagian Belakang 'Agg'

Untuk menyelesaikan isu ini, paksa matplotlib menggunakan "Agg" bahagian belakang, yang tidak memerlukan paparan grafik. Ini boleh dicapai dengan menambahkan kod berikut sebelum sebarang import matplotlib lain:

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

Penjelasan:

Halaman belakang Agg ialah hujung belakang bukan interaktif yang menyediakan cara untuk menyimpan angka sebagai fail tanpa memerlukan paparan grafik. Dengan menetapkan matplotlib untuk menggunakan bahagian belakang ini, anda boleh menjana imej PNG walaupun tanpa pembolehubah DISPLAY yang sah.

Penyelesaian Alternatif:

  • Tetapkan pembolehubah PAPARAN kepada peranti paparan yang sah.
  • Gunakan modul Python berbeza yang tidak bergantung pada matplotlib untuk imej generasi.
  • Tetapkan hujung belakang dalam fail .matplotlibrc:
backend : Agg

Atas ialah kandungan terperinci Bagaimana untuk Menjana Imej PNG dengan Matplotlib Apabila DISPLAY Tidak Ditakrifkan?. 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