> 백엔드 개발 > 파이썬 튜토리얼 > 디스플레이가 없는 시스템에서 Matplotlib를 사용하여 PNG 이미지를 생성하는 방법은 무엇입니까?

디스플레이가 없는 시스템에서 Matplotlib를 사용하여 PNG 이미지를 생성하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-14 12:40:12
원래의
537명이 탐색했습니다.

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

디스플레이가 정의되지 않은 Matplotlib를 사용하여 PNG 생성

그래픽 사용자 인터페이스(GUI) 없이 matplotlib로 작업할 때 다음을 나타내는 오류가 발생할 수 있습니다. "표시 이름도 없고 $DISPLAY 환경 변수도 없습니다." 이 오류는 matplotlib가 기본적으로 X 기반 백엔드를 사용하려고 시도하기 때문에 발생합니다.

그래픽 인터페이스가 없는 시스템에서 이 문제를 해결하려면 다음 단계를 따르십시오.

1단계: 강제 실행 Agg Backend를 사용하기 위한 Matplotlib

matplotlib 패키지에서 구성 요소를 가져오기 전에 다음 코드를 포함하여 강제로 실행하세요. 비대화형인 'Agg' 백엔드를 사용하려면 matplotlib를 사용하세요.

import matplotlib
# Force matplotlib to not use any Xwindows backend.
matplotlib.use('Agg')
로그인 후 복사

2단계: 잠재적인 경고 처리

matplotlib 버전에 따라 백엔드 선택 순서에 관한 경고를 받을 수 있습니다. matplotlib 모듈에 대한 다른 호출 전에 이 코드가 실행되는지 확인하세요.

대안: .matplotlibrc 편집

코드에서 백엔드를 지정하는 대신 matplotlib 구성을 수정할 수 있습니다. 사용자의 홈에 있는 '.matplotlibrc' 파일 디렉토리:

  • 텍스트 편집기를 사용하여 .matplotlibrc를 엽니다.
  • 파일에 'backend: Agg' 줄을 추가합니다.
  • 파일을 저장하고 닫습니다.

이렇게 하면 matplotlib가 코드 실행에 관계없이 항상 'Agg' 백엔드를 사용하게 됩니다. order.

다음 Python 코드를 고려하세요.

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")
로그인 후 복사

'matplotlib.use('Agg')'를 앞에 추가하여 networkx 및 matplotlib 가져오기를 사용하면 오류가 해결되어 그래픽 없이 PNG 이미지를 생성할 수 있습니다. 인터페이스.

위 내용은 디스플레이가 없는 시스템에서 Matplotlib를 사용하여 PNG 이미지를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿