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를 적절히 조합하면 데이터 탐색 과정에서 그래프를 실시간으로 조작하며 효율적으로 분석할 수 있습니다.