質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1196閲覧

python jupyter notebook アニメーションのループをしたい

rr9500sc

総合スコア16

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/26 06:08

編集2019/08/28 01:47

こんにちは。
現在、下記のプログラムでjupyterにてそれぞれ線で繋がった7つの点が動くアニメーションを作成しています。

%matplotlib notebook %matplotlib nbagg import mpl_toolkits.mplot3d as plt3d from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt import matplotlib.animation as animation from IPython.display import HTML import numpy as np def init(): ax.set_xlim(-10,10) ax.set_ylim(-10,10) ax.set_zlim(-10,10) ax.set_xlabel("x") ax.set_ylabel("y") ax.set_zlabel("z") ax.set_aspect('equal') return lines1,lines2,lines3,lines4,lines5,lines6,lines7 x1,y1,z1 = [],[],[] x2,y2,z2 = [],[],[] x3,y3,z3 = [],[],[] x4,y4,z4 = [],[],[] x5,y5,z5 = [],[],[] x6,y6,z6 = [],[],[] x7,y7,z7 = [],[],[] x1=[1,8,3,6,3,6,4] y1=[9,1,5,3,7,3,8] z1=[0,2,5,7,1,0,5] x2=[-1,-8,-3,-6,-3,-6,-4] y2=[-9,-1,-5,-3,-7,-3,-8] z2=[1,3,1,2,4,2,4] x3=[6,8,3,0,7,1,2] y3=[1,5,6,4,7,0,8] z3=[2,2,4,4,0,0,7] x4=[9,6,-8,0,0,3,2] y4=[3,0,9,5,7,4,8] z4=[5,3,8,2,7,3,8] x5=[0,4,2,8,7,3,3] y5=[2,5,8,2,5,2,1] z5=[1,0,2,8,2,7,1] x6=[4,6,2,5,2,5,9] y6=[2,6,3,6,4,4,2] z6=[6,6,2,7,8,3,2] x7=[2,3,9,3,8,3,6] y7=[3,6,3,3,2,6,8] z7=[9,3,0,6,4,6,7] def update_lines(num,data1,data2,data3,data4,data5,data6,data7,lines1,lines2,lines3,lines4,lines5,lines6,lines7,points1,points2, points3,points4,points5, points6,points7,datx,daty,datz,lines_p2p1,lines_p2p2): for dat1,dat2,dat3,dat4,dat5,dat6,dat7,line1,line2,line3,line4,line5,line6,line7,point1,point2, point3,point4,point5, point6,point7 in zip(data1,data2,data3,data4,data5,data6,data7,lines1,lines2,lines3,lines4,lines5,lines6,lines7,points1,points2, points3,points4,points5, points6,points7): point1.set_data(dat1[0:2, num+1]) point1.set_3d_properties(dat1[2, num+1]) point2.set_data(dat2[0:2, num+1]) point2.set_3d_properties(dat2[2, num+1]) point3.set_data(dat3[0:2, num+1]) point3.set_3d_properties(dat3[2, num+1]) point4.set_data(dat4[0:2, num+1]) point4.set_3d_properties(dat4[2, num+1]) point5.set_data(dat5[0:2, num+1]) point5.set_3d_properties(dat5[2, num+1]) point6.set_data(dat6[0:2, num+1]) point6.set_3d_properties(dat6[2, num+1]) point7.set_data(dat7[0:2, num+1]) point7.set_3d_properties(dat7[2, num+1]) lines_p2p1[num].remove() lines_p2p2[num].remove() lines_p2p1[num+1],=ax.plot(datx[0,:5,num+1], daty[0,:5,num+1], datz[0,:5,num+1],color='red') lines_p2p2[num+1],=ax.plot(datx[0,5:,num+1], daty[0,5:,num+1], datz[0,5:,num+1],color='blue') return lines1,lines2,lines3,lines4,lines5,lines6,lines7 fig = plt.figure() ax = fig.gca(projection='3d') t = np.linspace(-3, 2, 30) z = np.linspace(-3, 2, 30) r = np.linspace(-3, 2, 30) x1, y1, z1 = x1, y1, z1 x2, y2, z2 = x2, y2, z2 x3, y3, z3 = x3, y3, z3 x4, y4, z4 = x4, y4, z4 x5, y5, z5 = x5, y5, z5 x6, y6, z6 = x6, y6, z6 x7, y7, z7 = x7, y7, z7 data1 = np.array([[x1,y1,z1]]) data2 = np.array([[x2,y2,z2]]) data3 = np.array([[x3,y3,z3]]) data4 = np.array([[x4,y4,z4]]) data5 = np.array([[x5,y5,z5]]) data6 = np.array([[x6,y6,z6]]) data7 = np.array([[x7,y7,z7]]) lines1=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data1] lines2=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data2] lines3=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data3] lines4=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data4] lines5=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data5] lines6=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data6] lines7=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1] )[0] for dat in data7] points1=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data1] points2=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data2] points3=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data3] points4=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data4] points5=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data5] points6=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data6] points7=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data7] datx=np.array([[data1[0,0],data2[0,0],data3[0,0],data4[0,0],data5[0,0],data6[0,0],data7[0,0]]]) daty=np.array([[data1[0,1],data2[0,1],data3[0,1],data4[0,1],data5[0,1],data6[0,1],data7[0,1]]]) datz=np.array([[data1[0,2],data2[0,2],data3[0,2],data4[0,2],data5[0,2],data6[0,2],data7[0,2]]]) lines_p2p1=[0]*7 lines_p2p2=[0]*7 lines_p2p1[0],=ax.plot(datx[0,:5,0], daty[0,:5,0], datz[0,:5,0],color='red') lines_p2p2[0],=ax.plot(datx[0,5:,0], daty[0,5:,0], datz[0,5:,0],color='blue') line_ani = animation.FuncAnimation(fig, update_lines, 172, fargs=(data1,data2,data3,data4,data5,data6,data7,lines1,lines2,lines3,lines4,lines5,lines6,lines7,points1,points2, points3,points4,points5, points6,points7,datx,daty,datz,lines_p2p1,lines_p2p2), interval=1000, init_func=init, blit=True, repeat=True,)

こちらのプログラムでは、それぞれ7コマ目の座標になったあと、
止まってしまい、ループされないという形になってしまいます。

それを半永久的にループするようにしたいのですが
どのような方法を取ればいいのでしょうか。

拙い文章で申し訳ないのですがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問