본문 바로가기
Python/matplotlib

파이썬 matplotlib.animation.FuncAnimation 함수 활용하기

by PySun 2024. 11. 5.
반응형

파이썬 matplotlib.animation.FuncAnimation 함수 활용하기: 애니메이션으로 데이터 시각화의 새로운 차원 열기

파이썬의 Matplotlib 라이브러리는 데이터 시각화에 많은 도구를 제공하지만, 그 중에서도 FuncAnimation 함수는 데이터의 변화를 애니메이션으로 표현하는 강력한 도구입니다. 이 포스팅에서는 matplotlib.animation.FuncAnimation 함수를 활용하여 동적이고 매력적인 시각화를 만드는 방법에 대해 알아보겠습니다.

FuncAnimation 함수 소개

FuncAnimation 함수는 주어진 초기 데이터 또는 시뮬레이션 결과를 기반으로 프레임을 생성하고, 이 프레임들을 연속적으로 업데이트하여 애니메이션을 생성합니다. 이를 통해 데이터의 변화와 흐름을 시각적으로 쉽게 전달할 수 있습니다.

함수 시그니처

FuncAnimation(fig, func, frames=None, init_func=None, blit=False, repeat=True, **kwargs)

매개변수:

  • fig: 애니메이션을 그릴 Figure 객체입니다.
  • func: 각 프레임을 업데이트하기 위한 함수입니다.
  • frames: 전체 프레임 수 또는 프레임의 생성기를 나타냅니다.
  • init_func: 초기 상태를 설정하기 위한 함수입니다.
  • blit: 화면을 다시 그릴지 여부를 결정합니다.
  • repeat: 애니메이션을 반복할지를 결정합니다.
  • **kwargs: 추가 매개변수입니다.

반환 값:

  • 생성된 애니메이션 객체를 반환합니다.

사용 예제

기본 애니메이션 예제

다음은 FuncAnimation 함수를 사용하여 정사각형이 넓어지는 애니메이션을 생성하는 기본 예시입니다.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

# Figure 및 Axes 생성
fig, ax = plt.subplots()
x = np.linspace(0, 2 * np.pi, 100)
line, = ax.plot(x, np.sin(x))

# 애니메이션 업데이트 함수
def update(frame):
    line.set_ydata(np.sin(x + frame / 10))  # y값 업데이트
    return line,

# 애니메이션 생성
ani = FuncAnimation(fig, update, frames=100, blit=True)

plt.show()  # 애니메이션 표시

다양한 애니메이션 요소 추가하기

이제 다양한 요소를 추가하여 더 흥미로운 애니메이션을 만들어 봅시다. 아래의 코드는 사인 곡선에 포인트가 추가되는 애니메이션을 보여줍니다.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

# Figure 및 Axes 생성
fig, ax = plt.subplots()
x = np.linspace(0, 2 * np.pi, 100)
line, = ax.plot(x, np.sin(x), color='blue')
point, = ax.plot([], [], 'ro')  # 빈 리스트 생성하여 초기 포인트 설정

# 애니메이션 업데이트 함수
def init():
    point.set_data([], [])
    return point,

def update(frame):
    point.set_data(x[frame % 100], np.sin(x[frame % 100]))  # 포인트의 위치 업데이트
    return point,

# 애니메이션 생성
ani = FuncAnimation(fig, update, frames=100, init_func=init, blit=True)

plt.show()  # 애니메이션 표시

결론

FuncAnimation 함수를 통해 애니메이션을 손쉽게 생성하고, 데이터 시각화를 더욱 매력적으로 만들 수 있습니다. 데이터의 동적인 변화를 표현하며, 보는 이의 관심을 사로잡는 강력한 도구가 될 것입니다.

  • FuncAnimation을 활용해 나만의 애니메이션을 만들어 보세요!
  • 지금 바로 데이터 시각화를 한 단계 높여줄 matplotlib.animation.FuncAnimation 함수를 활용해 보세요!
반응형