[python]色が変わっていく時計(アニメーション)
はじめに
1秒毎に回転し、60秒で1周する秒針(時計)を作成します。
ただ秒針を描くだけではつまらないので、時計の色が0~60[s]の範囲で、青色から赤色へ次第に変化するようにします。最後にgifとして保存して完成です。
pythonの、アニメーションを作成するライブラリを用います。
完成したアニメーション
コード
second_hand.py
%matplotlib nbagg
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.patches as pat
fig = plt.figure()
ax = plt.subplot()
def clock(i):
circle = [ax.add_patch(pat.Wedge(center=(0, 0), r=1, color=[0+i/60,0,1-i/60], theta1 = 95-i*(360/60), theta2 = 85-i*(360/60)))]
#center:中心のxy座標,r:ウェッジの半径,color:RGBでの色指定(各色0~1),theta:ウェッジの角度を指定
#circleをリストにすることに注意してください。あとでimgsに追加できるようにするためです。
return circle
#リストimgsに、各秒ごとのclockを追加していきます。
imgs=[]
for i in range(60):
imgs.append(clock(i))
ani = animation.ArtistAnimation(fig, imgs, interval=1000, repeat=True)
plt.axis("scaled")
plt.show()
ani.save("second_hand.gif", writer="imagemagick")#gifとして保存
環境
second_hand.py
%matplotlib nbagg
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.patches as pat
fig = plt.figure()
ax = plt.subplot()
def clock(i):
circle = [ax.add_patch(pat.Wedge(center=(0, 0), r=1, color=[0+i/60,0,1-i/60], theta1 = 95-i*(360/60), theta2 = 85-i*(360/60)))]
#center:中心のxy座標,r:ウェッジの半径,color:RGBでの色指定(各色0~1),theta:ウェッジの角度を指定
#circleをリストにすることに注意してください。あとでimgsに追加できるようにするためです。
return circle
#リストimgsに、各秒ごとのclockを追加していきます。
imgs=[]
for i in range(60):
imgs.append(clock(i))
ani = animation.ArtistAnimation(fig, imgs, interval=1000, repeat=True)
plt.axis("scaled")
plt.show()
ani.save("second_hand.gif", writer="imagemagick")#gifとして保存
macOS Catalina
jupyter-notebook
Author And Source
この問題について([python]色が変わっていく時計(アニメーション)), 我々は、より多くの情報をここで見つけました https://qiita.com/Yuuki_Uchida/items/41600b3954ef6f4ba2ff著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .