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

Python Matplotlib 명령줄 대화형 플로팅 완벽 가이드

Matplotlib에서 대화형(interactive) 플롯을 사용하려면 먼저 figure(그림 창)를 활성화해야 합니다. 이때 핵심 역할을 하는 것이 바로 plt.ion()과 plt.ioff()입니다.

plt.ion()은 대화형 모드를 켜는 함수로, 코드 한 줄 한 줄이 실행될 때마다 그래프가 실시간으로 갱신되어 즉각적인 피드백을 받을 수 있습니다. 반대로 plt.ioff()는 대화형 모드를 끄는 함수로, 이후의 변경 사항은 화면에 자동으로 반영되지 않습니다.

실제 동작 과정을 확인하기 위해 IPython 셸을 열고 아래 명령어를 순서대로 입력해 보겠습니다.

예제 코드

In [1]: %matplotlib auto
Using matplotlib backend: GTK3Agg

In [2]: import matplotlib.pyplot as plt

In [3]: fig, ax = plt.subplots()  # 그림 창이 팝업으로 나타납니다. 직접 상호작용해 보세요.

In [4]: ln, = ax.plot(range(5))   # 선(line) 하나를 그립니다.

In [5]: ln.set_color("orange")    # 방금 그린 선의 색상을 주황색으로 변경합니다.

In [6]: plt.ioff()                # 대화형 모드를 종료합니다.

In [7]: ln.set_color("red")
# 이전 단계에서 대화형 모드를 껐기 때문에 색상 변경이 화면에 즉시 반영되지 않습니다.

In [8]: plt.ion()                 # 대화형 모드를 다시 시작합니다.

실행 결과

위 코드를 실행하면 그래프 창이 열리고, 각 단계마다 선의 색상이 실시간으로 바뀌는 것을 확인할 수 있습니다.

Python Matplotlib 명령줄 대화형 플로팅 완벽 가이드

핵심 정리

- %matplotlib auto: 백엔드를 활성화해 그림 창을 별도 창으로 띄웁니다.
- plt.ion(): 대화형 모드 ON — plot 객체의 속성 변경이 즉시 화면에 반영됩니다.
- plt.ioff(): 대화형 모드 OFF — 변경 사항이 자동으로 갱신되지 않으며, 필요 시 plt.draw()나 plt.show()를 호출해야 화면에 나타납니다.

이처럼 ion/ioff를 적절히 조합하면 데이터 탐색 과정에서 그래프를 실시간으로 조작하며 효율적으로 분석할 수 있습니다.