Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 matplotlib으로 원격 서버에 그래프 이미지 저장하는 방법

GUI 환경이 없는 원격 서버에서 Python으로 그래프를 작업할 때는 화면에 표시하는 대신 이미지 파일로 저장해야 합니다. 이때 pyplot 패키지의 savefig() 메서드를 사용하면 지정한 경로에 그림(figure)을 손쉽게 저장할 수 있습니다.

핵심 포인트

  • 원격 서버처럼 디스플레이가 없는 환경에서는 Agg 백엔드를 사용해야 합니다.
  • 백엔드 설정은 반드시 pyplot을 임포트하기 이전에 수행해야 합니다.
  • savefig() 메서드에 파일 경로와 파일명을 지정하여 원격 위치에 이미지를 저장합니다.

구현 단계

  1. 다른 백엔드를 사용하려면 matplotlib.use('Agg') 메서드로 백엔드를 먼저 설정합니다.
  2. plot() 메서드로 선 그래프를 그립니다.
  3. savefig() 메서드에 저장할 디렉터리 경로를 넣어 이미지를 원격 위치에 저장합니다.
  4. 로컬 환경이라면 plt.show()로 그림을 화면에 표시할 수도 있습니다.

예제 코드

import matplotlib

matplotlib.use('Agg')  # GUI 없이 동작하는 백엔드 설정
from matplotlib import pyplot as plt

plt.plot([1, 2, 3])
plt.savefig("remotely_fig.png")  # 현재 디렉터리에 PNG 파일로 저장

실행 결과

위 코드를 실행하면 스크립트가 위치한 디렉터리에 remotely_fig.png라는 이름의 이미지 파일이 생성되며, 값 1, 2, 3을 연결하는 간단한 선 그래프가 저장됩니다.

추가 팁

  • 저장 경로 지정: plt.savefig('/path/to/directory/figure.png')처럼 절대 경로나 상대 경로를 모두 사용할 수 있습니다.
  • 해상도 조절: plt.savefig('fig.png', dpi=300) 옵션으로 고해상도 이미지를 저장할 수 있습니다.
  • 다양한 파일 형식: 확장자에 따라 PNG, PDF, SVG 등 다양한 형식으로 저장됩니다.
  • Jupyter 환경 주의: 노트북에서는 셀 상단의 %matplotlib inline 매직 명령이 백엔드 설정보다 우선 적용될 수 있으므로 순서에 유의해야 합니다.