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

Jupyter 노트북에서 특정 Figure의 상호작용을 프로그래밍 방식으로 중지하는 방법

Jupyter 노트북에서 작업하다 보면 대화형(interactive) 모드로 그린 여러 Figure 중 일부만 상호작용을 비활성화하고 싶은 경우가 있습니다. 이럴 때 plt.ioff()를 사용하면 해당 시점 이후의 Figure 상호작용을 프로그래밍 방식으로 손쉽게 중지할 수 있습니다.

구현 단계

아래 명령어를 순서대로 실행합니다.

  • %matplotlib auto — 백엔드를 자동으로 설정합니다.
  • import matplotlib.pyplot as plt — pyplot 모듈을 임포트합니다.
  • plt.rcParams["figure.figsize"] = [7.50, 3.50] — Figure 크기를 지정합니다.
  • plt.rcParams["figure.autolayout"] = True — 레이아웃 자동 조정을 활성화합니다.
  • plt.subplots()로 Figure와 서브플롯 축을 생성합니다.
  • 생성된 축에 선 그래프를 그립니다.
  • plt.ioff()를 호출하여 상호작용 모드를 끕니다.
  • show() 메서드로 Figure를 화면에 표시합니다.

예제 코드

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

In [2]: import matplotlib.pyplot as plt

In [3]: plt.rcParams["figure.figsize"] = [7.50, 3.50]
...: plt.rcParams["figure.autolayout"] = True

In [4]: fig, ax = plt.subplots()

In [5]: ax.plot([2, 4, 7, 5, 4, 1])
Out[5]: [<matplotlib.lines.Line2D at 0x7fa6e00f5e48>]

In [6]: plt.ioff()

In [7]: ax.plot([1, 1, 2, 1, 2, 2])
Out[7]: [<matplotlib.lines.Line2D at 0x7fa6e0063ef0>]

In [8]: fig.show()

실행 결과

Jupyter 노트북에서 특정 Figure의 상호작용을 프로그래밍 방식으로 중지하는 방법

plt.ioff()가 호출된 이후에는 Figure가 즉시 업데이트되지 않으며, fig.show()를 직접 호출해야 화면에 표시됩니다. 이처럼 ioff()와 ioff()를 적절히 활용하면 노트북에서 대화형 플롯과 정적 플롯을 상황에 맞게 혼합하여 사용할 수 있습니다.