matplotlib.animation에 대한 ffmpeg를 활성화하려면 , 우리는 다음 단계를 수행할 수 있습니다 -
-
Figure 크기를 설정하고 서브플롯 사이와 주변의 패딩을 조정합니다.
-
ffmpeg 설정 디렉토리.
-
Figure()를 사용하여 새 Figure를 생성하거나 기존 Figure를 활성화합니다. 방법.
-
'ax1' 추가 하위 플롯 배열의 일부로 그림에.
-
기존 축을 기준으로 구분선을 플로팅합니다.
-
데이터를 2D 일반 래스터와 같이 이미지로 표시하기 위해 플로팅할 임의의 데이터를 생성합니다.
-
ScalarMappable용 컬러바 만들기 인스턴스, cb .
-
제목을 현재 프레임으로 설정합니다.
-
컬러맵 목록을 만드세요.
-
animate라는 함수를 반복적으로 호출하여 애니메이션을 만듭니다. 이 함수는 새로운 임의의 데이터를 생성한 다음 imshow()를 사용합니다. 데이터를 이미지로 표시하는 방법입니다.
-
파이프 기반 ffmpeg 인스턴스 가져오기 작가.
-
현재 애니메이션 피규어를 저장합니다.
예시
import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation from mpl_toolkits.axes_grid1 import make_axes_locatable plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True plt.rcParams['animation.ffmpeg_path'] = 'ffmpeg' fig = plt.figure() ax = fig.add_subplot(111) div = make_axes_locatable(ax) cax = div.append_axes('right', '5%', '5%') data = np.random.rand(5, 5) im = ax.imshow(data) cb = fig.colorbar(im, cax=cax) tx = ax.set_title('Frame 0') cmap = ["copper", 'RdBu_r', 'Oranges', 'cividis', 'hot', 'plasma'] def animate(i): cax.cla() data = np.random.rand(5, 5) im = ax.imshow(data, cmap=cmap[i%len(cmap)]) fig.colorbar(im, cax=cax) tx.set_text('Frame {0}'.format(i)) ani = animation.FuncAnimation(fig, animate, frames=10) FFwriter = animation.FFMpegWriter() ani.save('plot.mp4', writer=FFwriter)
출력
코드를 실행하면 'plot.mp4'라는 이름의 mp4 파일이 생성되어 프로젝트 디렉토리에 저장됩니다.