Python 을 이용 하여 재 미 있 는 GIF 동 도 를 어떻게 만 드 는 지 상세 하 게 설명 합 니 다.
전에 우 리 는 나 눈 적 이 있다Python 으로 시각 화 하 는 9 가지 흔 한 방식사실 우 리 는 시각 화 된 도형 을 더욱 높 게 만 들 수 있 습 니 다.오늘 은 시각 화 쇼 를 어떻게 하 는 지 공유 하 겠 습 니 다.Python 과 matplotlib 로 GIF 도 표를 만 드 는 방법 입 니 다.
만약 에 컴퓨터 에 ImageMagick 이 설치 되 어 있 지 않 으 면 먼저여기,이곳자신의 컴퓨터 시스템 에 따라 해당 버 전 을 다운로드 할 수 있 습 니 다.여러분 도 저 희 를 통 해 다운로드 할 수 있 습 니 다https://www.jb51.net/softs/140766.html만약 에 저희 가 matplotlib 의 save 방법 으로 GIF 동 도 를 렌 더 링 하려 면 ImageMagick 을 설치 해 야 합 니 다.
다음 그림 은 우리 가 만 든 움 직 이 는 그림 의 예 이다.
두 가지 주의해 야 할 것 이 있다.도표 중의 산 점 은 움 직 이지 않 고 움 직 이 는 것 은 직선 이다.X 축 제목 이 프레임 마다 바 뀌 고 있 습 니 다.
다음은 우리 가 위의 GIF 그림 을 만 드 는 코드 입 니 다.
import sys
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
fig.set_tight_layout(True)
# DPI( )
# , DPI
print('fig size: {0} DPI, size in inches {1}'.format(
fig.get_dpi(), fig.get_size_inches()))
# ( )
x = np.arange(0, 20, 0.1)
ax.scatter(x, x + np.random.normal(0, 3.0, len(x)))
line, = ax.plot(x, x - 5, 'r-', linewidth=2)
def update(i):
label = 'timestep {0}'.format(i)
print(label)
# ( X )
#
line.set_ydata(x - 5 + i)
ax.set_xlabel(label)
return line, ax
if __name__ == '__main__':
# Update
# FunAnimation 10 , 200ms
anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)
if len(sys.argv) > 1 and sys.argv[1] == 'save':
anim.save('line.gif', dpi=80, writer='imagemagick')
else:
# Plt.show()
plt.show()
좀 더 멋 진 주 제 를 바 꾸 고 싶다 면 seaborn 라 이브 러 리 로 추가 하 세 요.
import seaborn
그러면 다음 GIF 그림 을 얻 을 수 있 습 니 다.잠시 알려 드 리 겠 습 니 다.비록 우리 가 있 는 GIF 그림 은 10 프레임 에 불과 하고 도형 내용 도 간단 하지만 한 프레임 에 160 k 정도 가 있 습 니 다.GIF 동 도 는 크로스 프레임 압축 을 사용 하지 않 기 때문에 프레임 이 비교적 긴 GIF 그림 을 크게 만든다.프레임 수 를 최대한 줄 이 고 각 프레임 의 그림 을 좀 더 작 게(matplotlib 에서 도형 크기 나 DPI 조정)하면 이 문 제 를 완화 하 는 데 도움 이 될 수 있 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
참고 자료:drawing-animated-gifs-with-matplotlib/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.