본문 바로가기
Python/matplotlib

matplotlib RuntimeError: No display name is found 해결하기

by PySun 2024. 11. 3.
반응형

소개

파이썬에서 matplotlib를 사용할 때 'RuntimeError: No display name is found' 에러를 발생하는 일은 종종 있습니다. 이 오류는 대부분 GUI 환경에서 matplotlib의 그래프를 표시하려 할 때 발생합니다. 이 블로그 글에서는 이러한 에러의 원인과 해결 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'RuntimeError: No display name is found' 에러가 발생할 수 있는 간단한 예시 코드를 살펴봅시다.

import matplotlib.pyplot as plt

# 간단한 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 그래프 생성
plt.plot(x, y)
plt.title("Sample Plot")
plt.show()  # GUI에서 실행하지 않으면 에러 발생

에러 해결 방법

1. matplotlib의 백엔드 설정

알림: 이 에러는 GUI 환경이 아닐 때 발생하기 때문에 matplotlib의 백엔드를 명시적으로 설정해주면 도움이 됩니다. 예를 들어, Agg 백엔드를 사용하면 파일에 이미지를 저장할 수 있습니다.

import matplotlib
matplotlib.use('Agg')  # Agg 백엔드 사용

import matplotlib.pyplot as plt

# 간단한 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 그래프 생성
plt.plot(x, y)
plt.title("Sample Plot")
plt.savefig("output_plot.png")  # 파일로 저장

2. plt.show() 호출 대신 파일로 저장하기

만약 GUI 환경에서 사용하고 싶지 않다면, plt.show() 대신 plt.savefig()를 사용하여 그래프를 파일로 저장하고, 나중에 확인하는 방법도 있습니다.

import matplotlib.pyplot as plt

# 간단한 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# 그래프 생성
plt.plot(x, y)
plt.title("Sample Plot")
plt.savefig("output_plot.png")  # 파일로 저장
print("Plot saved as output_plot.png")

마무리

이번 블로그 글에서는 matplotlib에서 발생하는 'RuntimeError: No display name is found' 에러에 대해 알아보았습니다. 백엔드를 조정하거나, plt.savefig()를 적절히 활용함으로써 이 문제를 해결할 수 있습니다. 언제나 환경에 맞는 설정을 고려하여, 오류를 사전에 방지하는 것이 중요합니다!

반응형