現在、jupyter notebookにて
アニメーションを作成中で、
下記のような3つの点が動くようなプログラムを組んでいます。
%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 x1,y1,z1 = [],[],[] x2,y2,z2 = [],[],[] x3,y3,z3 = [],[],[] 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] def update_lines(num,data1,data2,data3,lines1,lines2,lines3,points1,points2, points3): for dat1,dat2,dat3,line1,line2,line3,point1,point2, point3 in zip(data1,data2,data3,lines1,lines2,lines3,points1,points2, points3): point1.set_data(dat1[0:2, num+1]) point1.set_3d_properties(dat1[2, num+10]) point2.set_data(dat2[0:2, num+1]) point2.set_3d_properties(dat2[2, num+10]) point3.set_data(dat3[0:2, num+1]) point3.set_3d_properties(dat3[2, num+10]) return lines1,lines2,lines3, 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 data1 = np.array([[x1,y1,z1]]) data2 = np.array([[x2,y2,z2]]) data3 = np.array([[x3,y3,z3]]) 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] 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] line_ani = animation.FuncAnimation(fig, update_lines, 172, fargs=(data1,data2,data3,lines1,lines2,lines3, points1,points2,points3), interval=10, init_func=init, blit=True, repeat=True,)
これらの点をそれぞれ
point1 - point2
point2 - point3
と常に線で繋がった状態で動くようにしたいです。
インターネットで検索した(主に静止画の)線を引くのコマンドや、
points3=[ax.plot(dat[0, 0:1], dat[1, 0:1], dat[2, 0:1], 'o-')[0] for dat in data3]
のo-など、
試してみましたが成功しませんでした。
上記の試したコマンドのメモは残っていないです。申し訳ありません。
拙い文章ではありますがご回答のほど
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/26 02:51
2019/07/26 03:21
2019/07/26 04:13
2019/07/26 05:19