Matplotlib 를 이용한 애니메이션 이미지 생성

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 미리 계산된 이미지 목록을 사용하여 애니메이션 이미지를 만드는 방법을 배웁니다. Python 의 Matplotlib 라이브러리를 사용하여 애니메이션을 생성할 것입니다. 이 랩의 목적은 애니메이션 이미지 생성 과정을 시연하고, 작동 방식에 대한 기본적인 이해를 제공하는 것입니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 임포트

시작하려면 사용할 라이브러리를 임포트해야 합니다. 애니메이션을 생성하기 위해 Matplotlib 라이브러리를 사용하고, 애니메이션에 대한 데이터를 생성하기 위해 Numpy 라이브러리를 사용할 것입니다.

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

Figure 및 Axes 객체 생성

다음으로, 애니메이션을 생성하는 데 사용할 figure 및 axes 객체를 생성해야 합니다. subplots 메서드를 사용하여 이러한 객체를 생성할 것입니다.

fig, ax = plt.subplots()

함수 정의

이제 애니메이션에 대한 데이터를 생성하는 데 사용할 함수를 정의해야 합니다. 이 예제에서는 사인 (sine) 및 코사인 (cosine) 함수를 사용하여 데이터를 생성할 것입니다.

def f(x, y):
    return np.sin(x) + np.cos(y)

데이터 생성

Numpy 라이브러리의 linspace 메서드를 사용하여 애니메이션에 대한 데이터를 생성할 것입니다. x 와 y, 두 개의 데이터 세트를 생성한 다음, y 데이터를 재구성하여 2 차원 배열을 만들 것입니다.

x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)

애니메이션 프레임 생성

이제 애니메이션의 프레임을 생성할 것입니다. for 루프를 사용하여 60 개의 프레임을 생성할 것입니다. 루프의 각 반복에서 x 와 y 데이터를 업데이트한 다음, imshow 메서드를 사용하여 새로운 이미지 객체를 생성합니다. 그런 다음 이미지 객체를 ims 리스트에 추가합니다.

ims = []
for i in range(60):
    x += np.pi / 15
    y += np.pi / 30
    im = ax.imshow(f(x, y), animated=True)
    if i == 0:
        ax.imshow(f(x, y))  ## show an initial one first
    ims.append([im])

애니메이션 생성

이제 ArtistAnimation 메서드를 사용하여 애니메이션을 생성할 것입니다. figure 객체, ims 리스트, 프레임 간 간격 (interval), 그리고 반복 지연 (repeat delay) 을 전달할 것입니다.

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)

애니메이션 표시

마지막으로, show 메서드를 사용하여 애니메이션을 표시할 것입니다.

plt.show()

요약

이 랩 (lab) 에서는 미리 계산된 이미지 리스트를 사용하여 애니메이션 이미지를 만드는 방법을 배웠습니다. Python 의 Matplotlib 라이브러리를 사용하여 애니메이션을 생성하고, Numpy 라이브러리를 사용하여 애니메이션에 대한 데이터를 생성했습니다. figure 및 axes 객체를 생성하고, 함수를 정의하고, 데이터를 생성하고, 애니메이션 프레임을 생성하고, 애니메이션을 만들었습니다. 그런 다음 show 메서드를 사용하여 애니메이션을 표시했습니다. 이 랩은 애니메이션 이미지를 만드는 방법에 대한 기본적인 이해를 제공하고, 그 과정을 시연했습니다.