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 행렬이 이미지로 갱신되며, 다음과 같은 애니메이션 결과를 얻을 수 있습니다.

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