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

Matplotlib에서 plt.show()가 필요한 경우와 그렇지 않은 경우는 언제일까?

Matplotlib에서 그래프를 화면에 표시할 때 plt.show()fig.show() 중 어떤 것을 사용해야 할지 혼란스러울 수 있습니다. 두 메서드의 차이점을 명확히 이해하면 코드 작성이 훨씬 수월해집니다.

plt.show()와 fig.show()의 핵심 차이

plt.show()는 인터랙티브(대화형) 모드가 아닐 때, 즉 일반 스크립트 실행 환경에서 플롯을 화면에 표시하는 데 필요합니다. 반면 fig.show()는 인터랙티브 모드에서 여러 개의 figure 객체를 한 번에 화면에 띄우고 싶을 때 유용합니다.

간단한 예제를 통해 plt.show()fig.show()의 동작 차이를 직접 확인해 보겠습니다.

실행 단계

  • iPython 셸을 실행합니다.

  • 그림(figure) 크기를 설정하고 서브플롯 간의 여백(padding)을 조정합니다.

  • 새 figure를 생성하거나 기존 figure를 활성화합니다.

  • plot() 메서드를 사용하여 선 그래프를 그립니다.

  • show() 메서드로 그림을 표시합니다.

  • 인터랙티브하게 그림을 띄우려면 block=False 옵션과 함께 show() 메서드를 사용합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# 새 figure 생성
fig = plt.figure()

# 선 그래프 그리기
plt.plot(np.linspace(-5, 5, 100))

fig.show()

plt.show(block=False)

출력 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Matplotlib에서 plt.show()가 필요한 경우와 그렇지 않은 경우는 언제일까?

주목할 점은 이 출력 결과가 오직 인터랙티브 모드에서만 나타난다는 것입니다. 인터랙티브 모드가 아닌 일반 환경에서는 block=True(기본값) 상태로 plt.show()를 호출해야 그래프가 정상적으로 화면에 표시됩니다.

정리

즉, Jupyter Notebook이나 iPython 같은 대화형 환경에서 작업할 때는 fig.show() 또는 block=False 옵션으로 유연하게 그림을 관리할 수 있고, 파이썬 스크립트 파일(.py)을 실행하는 일반적인 경우에는 plt.show()를 호출해야 플롯이 제대로 표시된다는 점을 기억하세요.