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

Matplotlib에서 애니메이션 이미지 행렬 그리는 방법

Matplotlib에서 애니메이션이 적용된 이미지 행렬을 그리려면 FuncAnimation을 활용해 프레임마다 업데이트 함수를 반복 호출하는 방식으로 구현할 수 있습니다. 아래에서 단계별로 자세히 살펴보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.

  • 하나의 figure와 서브플롯 집합을 생성합니다.

  • update 함수를 반복적으로 호출하는 방식으로 애니메이션을 만듭니다.

  • update 메서드 내부에서 6×6 크기의 행렬을 생성하고, imshow()를 사용해 데이터를 2D 래스터(raster) 형태의 이미지로 표시합니다.

  • set_axis_off()를 호출해 축(axis)을 숨깁니다.

  • show() 메서드를 사용해 최종 결과를 화면에 출력합니다.

예제 코드

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

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

fig, ax = plt.subplots()

def update(i):
    im_normed = np.random.rand(6, 6)
    ax.imshow(im_normed)
    ax.set_axis_off()

anim = FuncAnimation(fig, update, frames=20, interval=50)

plt.show()

실행 결과

위 코드를 실행하면 매 프레임마다 새로운 무작위 값으로 채워진 6×6 행렬이 이미지로 갱신되며, 다음과 같은 애니메이션 결과를 얻을 수 있습니다.

Matplotlib에서 애니메이션 이미지 행렬 그리는 방법

코드 설명

FuncAnimation(fig, update, frames=20, interval=50)은 총 20개의 프레임을 생성하며, 각 프레임 사이의 간격은 50밀리초입니다. 즉, update 함수가 프레임 번호 i를 인자로 받아 호출될 때마다 새로운 난수 행렬이 생성되고 이것이 이미지로 다시 그려지면서 애니메이션 효과가 완성됩니다.