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

Matplotlib에서 키보드 입력으로 Python 그림(figure) 창 닫는 방법

Python의 Matplotlib에서 그려진 그림(figure) 창을 키보드 입력으로 닫고 싶다면 plt.pause() 메서드와 input() 함수, close() 메서드를 함께 활용하면 됩니다. 이 방식은 사용자가 Enter 키를 누를 때까지 그림이 화면에 유지되며, 입력이 들어오면 자동으로 창이 닫히도록 제어할 수 있습니다.

구현 단계

  • 그림 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
  • NumPy를 이용해 무작위 t와 y 데이터 포인트를 생성합니다.
  • figure() 메서드로 새 그림을 만들거나 기존 그림을 활성화합니다.
  • plot() 메서드로 t와 y 데이터 포인트를 그립니다.
  • title() 메서드로 그래프의 제목을 설정합니다.
  • draw() 메서드로 현재 그림을 다시 그려 화면에 반영합니다.
  • pause() 메서드로 일정 시간 동안 그림을 일시 정지 상태로 유지합니다.
  • input() 함수로 사용자의 키보드 입력(Enter)을 받아 다음 문장으로 진행합니다.
  • close() 메서드로 그림 창을 닫습니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
t = np.arange(0.0, 2.0, 0.01)
y = np.exp(-t)
fig = plt.figure()
plt.plot(t, y, lw=5, color='red')
plt.title("$y=e^{-t}$")
plt.draw()
plt.pause(1)
input("<Hit Enter>")
plt.close(fig)

실행 결과

코드를 실행하면 지수 감소 곡선 $y=e^{-t}$가 빨간색 선으로 그려진 그림 창이 나타납니다. 콘솔에서 <Hit Enter> 메시지가 표시된 상태에서 Enter 키를 누르면, 열려 있던 그림 창이 즉시 닫히고 프로그램이 종료됩니다.

Matplotlib에서 키보드 입력으로 Python 그림(figure) 창 닫는 방법

동작 원리 요약

핵심은 plt.draw()plt.pause() 조합입니다. Matplotlib는 기본적으로 스크립트 실행 중에는 그림을 실시간으로 렌더링하지 않기 때문에, draw()로 강제로 화면에 그린 뒤 pause()로 이벤트 루프를 잠깐 돌려줘야 창이 정상적으로 표시됩니다. 이후 input()이 프로그램 흐름을 멈추고 사용자 입력을 대기하며, Enter 키가 입력되면 close(fig)가 해당 figure 객체를 명시적으로 닫아 리소스를 해제합니다.