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

Matplotlib에서 텍스트를 새로 고치는 방법 완벽 가이드

Matplotlib에서 텍스트를 동적으로 갱신하는 방법

Matplotlib에서는 키보드 이벤트애니메이션 기능을 활용하여 화면에 표시된 텍스트를 실시간으로 새로 고칠 수 있습니다. 예를 들어, 사용자가 특정 키를 누르면 그래프 위의 텍스트 내용이 즉시 변경되도록 만들 수 있습니다.

아래 단계를 따라 구현해 보겠습니다.

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
  • figure와 서브플롯(subplots) 집합을 생성합니다.
  • 축(axes)에 텍스트를 추가합니다.
  • "z" 키와 "c" 키 입력에 따라 텍스트를 업데이트하는 사용자 정의 함수를 작성합니다.
  • 작성한 함수를 key_press_event 이벤트에 연결(bind)합니다.
  • figure가 포함된 캔버스(canvas)를 그립니다.
  • 텍스트가 포함된 figure를 애니메이션으로 처리합니다.
  • 최종적으로 figure를 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

from matplotlib import pyplot as plt, animation

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, ax = plt.subplots()
text = ax.text(.5, .5, 'First Text')

def action(event):
    if event.key == "z":
        text.set_text("zoom")
    elif event.key == "c":
        text.set_text("cool")

fig.canvas.mpl_connect('key_press_event', action)
fig.canvas.draw()
animation = animation.ArtistAnimation(fig, [(text,)])

plt.show()

동작 원리 설명

핵심은 text.set_text() 메서드입니다. 이 메서드는 기존 텍스트 객체의 내용을 새 문자열로 교체하며, 별도의 객체 재생성 없이 화면에 바로 반영됩니다.

또한 mpl_connect('key_press_event', action)을 통해 키보드 입력 이벤트가 발생할 때마다 action 함수가 자동으로 호출됩니다. "z" 키를 누르면 텍스트가 "zoom"으로, "c" 키를 누르면 "cool"으로 변경됩니다.

실행 결과

코드를 실행하면 다음과 같이 키 입력에 따라 텍스트가 실시간으로 바뀌는 것을 확인할 수 있습니다.

Matplotlib에서 텍스트를 새로 고치는 방법 완벽 가이드

이 방식은 대화형(interactive) 시각화 도구를 만들 때 유용하게 활용할 수 있으며, 마우스 클릭 이벤트나 타이머 이벤트와 결합하면 더욱 다양한 동적 인터랙션을 구현할 수 있습니다.