개요
데이터 분석 작업 중 단일 IPython 노트북에서 동일한 Matplotlib 그림(figure)을 반복해서 확인해야 하는 경우가 종종 있습니다. 이 글에서는 fig.show() 메서드를 활용해 한 번 만든 그림을 여러 번 다시 표시하는 방법을 단계별로 알아봅니다.
구현 단계
동일한 Matplotlib 그림을 여러 번 표시하려면 아래 단계를 순서대로 따르면 됩니다.
- 그림 크기(figure size)를 설정하고, 서브플롯(subplots) 사이와 주변의 패딩(padding)을 조정합니다.
- 그림(figure)과 서브플롯 집합을 생성합니다.
- 생성된 축(axes) 위에 데이터 포인트를 플롯합니다.
- 현재 그림을 다시 화면에 띄우려면 fig.show() 메서드를 호출합니다.
예제 코드
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 0x7f4270361c50>] In [6]: fig.show()
코드 설명
먼저 %matplotlib auto 매직 명령으로 대화형 백엔드(Qt5Agg)를 사용하도록 설정합니다. 이후 plt.rcParams를 이용해 그림의 가로·세로 크기를 각각 7.50과 3.50 인치로 지정하고, figure.autolayout 옵션을 켜서 요소들이 잘리지 않도록 자동 여백을 적용합니다.
plt.subplots()로 그림과 축 객체를 만든 뒤, ax.plot() 메서드로 리스트 형태의 데이터를 선 그래프로 그립니다. 마지막으로 fig.show()를 호출하면 해당 그림이 별도 창으로 표시되며, 필요할 때마다 다시 호출하여 같은 그림을 반복해서 확인할 수 있습니다.
실행 결과
위 코드를 실행하면 [2, 4, 7, 5, 4, 1] 값으로 구성된 선 그래프가 담긴 그림이 출력되며, fig.show()를 호출할 때마다 동일한 그림을 다시 확인할 수 있습니다.