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

Matplotlib에서 텍스트에 애니메이션 효과를 적용하는 방법

Matplotlib 텍스트 애니메이션 개요

Matplotlib에서 텍스트에 애니메이션 효과를 적용하려면 animation 모듈의 FuncAnimation 클래스를 활용하면 됩니다. 아래 단계를 따라가면 프레임마다 텍스트의 크기가 점점 커지고 색상이 바뀌는 간단한 애니메이션을 손쉽게 만들 수 있습니다.

구현 단계

  • matplotlib에서 animation 패키지를 임포트합니다.
  • 그림(figure) 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
  • 새 그림을 생성하거나 기존 그림을 활성화합니다.
  • 서브플롯 배치의 일부로 그림에 'ax'(축 객체)를 추가합니다.
  • 문자열을 저장할 변수 "text"를 초기화합니다.
  • x=0.20, y=0.50 좌표에 축 위에 텍스트를 추가합니다.
  • 애니메이션에 사용할 색상 목록을 준비합니다.
  • animate 함수를 반복적으로 호출하는 방식으로 애니메이션을 생성합니다. 각 프레임마다 텍스트 크기가 증가하고 색상이 변경되도록 구현합니다.
  • 완성된 그림을 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

from matplotlib import animation
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = fig.add_subplot(111)
text = 'You are welcome!'
txt = ax.text(.20, .5, text, fontsize=15)

colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']


def animate(num):
   txt.set_fontsize(num * 2 + num)
   txt.set_color(colors[num % len(colors)])
   return txt,

anim = animation.FuncAnimation(fig, animate, frames=len(text) - 1, blit=True)

plt.show()

핵심 포인트

FuncAnimation(fig, animate, frames=len(text) - 1, blit=True) 호출에서 frames 인자는 애니메이션이 진행될 총 프레임 수를 결정합니다. 또한 blit=True 옵션을 지정하면 화면에서 실제로 변경된 부분만 다시 그리게 되어 렌더링 성능이 크게 향상됩니다. 색상 목록은 num % len(colors) 연산으로 순환 참조되므로, 프레임 수가 색상 개수보다 많아도 오류 없이 색상이 반복 적용됩니다.

실행 결과

위 코드를 실행하면 텍스트가 점차 커지면서 색상이 계속 바뀌는 다음과 같은 애니메이션 결과를 얻을 수 있습니다.

Matplotlib에서 텍스트에 애니메이션 효과를 적용하는 방법Matplotlib에서 텍스트에 애니메이션 효과를 적용하는 방법