Colaboratory 환경에서 matplotlib를 사용하여 gif 동영상 저장
matplotlib을 사용하여 gif 동영상을 만들려고하면 조금 빠졌습니다.
메모 대신 남겨 둡니다.
공동체에서 gif 저장
"matplotlib gif 저장"에서 구그하면 일반적으로 matplotlib에서
imagemagick이라는 소프트웨어를 통해 gif를 저장하는 것이 간단하다는 것.
imagemagick은 pip에서 설치할 수없는 것 같습니다. Colaboratory 환경에서
다음과 같이 명령을 치면 설치할 수있었습니다.
!apt-get update && apt-get install imagemagick
scatter의 주의점
Colaboratory와 관련이 없지만 plt.plot을 사용하면 다음과 같이 플롯을
추가하면 나중에 gif로 변환할 수 있습니다.
im = plt.plot(x)
ims.append(im)
그러나 plt.scatter라면 다음과 같이 []를 붙이지 않으면 오류가 발생했습니다.
im = plt.scatter(x, y)
ims.append([im])
공 포물선 그리기
import numpy as np
import os
import matplotlib.pyplot as plt
import matplotlib.animation as animation
#t秒後のボールの位置
def position(theta, v0, t):
x_return = v0 * np.cos(theta) * t
y_return = -0.5*9.81*(t**2) + v0*np.sin(theta)*t
return x_return, y_return
xt = 0
yt = 0
t = 0
v0 = 10 #初速
theta = 45 #投げる角度
theta = theta*3.14/180 #ラジアンに変換
#gifファイルの保存先
path = 'movies/'
if not os.path.exists(path):
os.mkdir(path)
#グラフの体裁
fig = plt.figure()
plt.ylim(0,6)
plt.xlim(0,10)
plt.grid(True)
ims = []
#ボールの演算
while(True):
xt, yt = position(theta, v0, t) # ボール位置の更新
im = plt.scatter(xt, yt, c="b") # ボールの位置をグラフにする
ims.append([im]) # グラフを配列 ims に追加
#地面に付いたら終了
if yt<0:
break
t+=0.05
# ロットを 50ms ごとに表示
ani = animation.ArtistAnimation(fig, ims, interval=50)
ani.save(path + "output.gif", writer="imagemagick")
안전하게 저장할 수있었습니다.
Reference
이 문제에 관하여(Colaboratory 환경에서 matplotlib를 사용하여 gif 동영상 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinmura0/items/ed96863281637e4fa10c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
!apt-get update && apt-get install imagemagick
Colaboratory와 관련이 없지만 plt.plot을 사용하면 다음과 같이 플롯을
추가하면 나중에 gif로 변환할 수 있습니다.
im = plt.plot(x)
ims.append(im)
그러나 plt.scatter라면 다음과 같이 []를 붙이지 않으면 오류가 발생했습니다.
im = plt.scatter(x, y)
ims.append([im])
공 포물선 그리기
import numpy as np
import os
import matplotlib.pyplot as plt
import matplotlib.animation as animation
#t秒後のボールの位置
def position(theta, v0, t):
x_return = v0 * np.cos(theta) * t
y_return = -0.5*9.81*(t**2) + v0*np.sin(theta)*t
return x_return, y_return
xt = 0
yt = 0
t = 0
v0 = 10 #初速
theta = 45 #投げる角度
theta = theta*3.14/180 #ラジアンに変換
#gifファイルの保存先
path = 'movies/'
if not os.path.exists(path):
os.mkdir(path)
#グラフの体裁
fig = plt.figure()
plt.ylim(0,6)
plt.xlim(0,10)
plt.grid(True)
ims = []
#ボールの演算
while(True):
xt, yt = position(theta, v0, t) # ボール位置の更新
im = plt.scatter(xt, yt, c="b") # ボールの位置をグラフにする
ims.append([im]) # グラフを配列 ims に追加
#地面に付いたら終了
if yt<0:
break
t+=0.05
# ロットを 50ms ごとに表示
ani = animation.ArtistAnimation(fig, ims, interval=50)
ani.save(path + "output.gif", writer="imagemagick")
안전하게 저장할 수있었습니다.
Reference
이 문제에 관하여(Colaboratory 환경에서 matplotlib를 사용하여 gif 동영상 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinmura0/items/ed96863281637e4fa10c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import os
import matplotlib.pyplot as plt
import matplotlib.animation as animation
#t秒後のボールの位置
def position(theta, v0, t):
x_return = v0 * np.cos(theta) * t
y_return = -0.5*9.81*(t**2) + v0*np.sin(theta)*t
return x_return, y_return
xt = 0
yt = 0
t = 0
v0 = 10 #初速
theta = 45 #投げる角度
theta = theta*3.14/180 #ラジアンに変換
#gifファイルの保存先
path = 'movies/'
if not os.path.exists(path):
os.mkdir(path)
#グラフの体裁
fig = plt.figure()
plt.ylim(0,6)
plt.xlim(0,10)
plt.grid(True)
ims = []
#ボールの演算
while(True):
xt, yt = position(theta, v0, t) # ボール位置の更新
im = plt.scatter(xt, yt, c="b") # ボールの位置をグラフにする
ims.append([im]) # グラフを配列 ims に追加
#地面に付いたら終了
if yt<0:
break
t+=0.05
# ロットを 50ms ごとに表示
ani = animation.ArtistAnimation(fig, ims, interval=50)
ani.save(path + "output.gif", writer="imagemagick")
Reference
이 문제에 관하여(Colaboratory 환경에서 matplotlib를 사용하여 gif 동영상 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinmura0/items/ed96863281637e4fa10c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)