개요
Matplotlib로 그린 플롯을 다시 그리지 않고 재사용하고 싶은 경우가 종종 있습니다. 예를 들어 실시간 데이터 시각화나 인터랙티브 차트를 만들 때는 기존 라인 객체의 데이터만 갱신하는 것이 성능 면에서 훨씬 효율적입니다. 이 글에서는 set_ydata()와 set_linewidth() 같은 메서드를 활용해 기존 플롯을 손쉽게 업데이트하는 방법을 단계별로 살펴보겠습니다.
플롯 재사용 단계
- 먼저 figure.figsize로 그림 크기를 설정하고, figure.autolayout 옵션으로 서브플롯 주변과 사이의 여백을 자동 조정합니다.
- figure() 메서드를 사용해 새 그림을 만들거나 기존 그림을 활성화합니다.
- 입력 리스트를 사용해 선(line) 플롯을 그립니다. 이때 반환되는 라인 객체를 변수에 저장해 두는 것이 핵심입니다.
- 플롯을 재사용하려면 저장된 라인 객체의 y 데이터와 선 두께(linewidth)를 업데이트합니다.
- 마지막으로 show() 메서드를 호출해 그림을 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True line, = plt.plot([1, 3], [3, 4], label="line plot", color='red', lw=0.5) line.set_ydata([3.5]) line.set_linewidth(4) plt.show()
실행 결과
위 코드를 실행하면 처음에는 얇은 빨간색 선(두께 0.5)이 그려지지만, set_ydata([3.5])가 호출되면서 y값이 3.5로 변경되고, set_linewidth(4)에 의해 선 두께가 4로 굵어진 결과가 화면에 표시됩니다.
핵심 포인트
plt.plot()은 Line2D 객체의 튜플을 반환하므로, line,처럼 언패킹하여 단일 라인 객체를 받아야 합니다. 이렇게 저장한 객체를 통해 데이터나 스타일을 변경하면 전체 플롯을 다시 그리는 것보다 훨씬 빠르게 그래프를 갱신할 수 있으며, 애니메이션이나 실시간 모니터링 대시보드 구현에 특히 유용합니다.