python matplotlib で
下のコードのように媒介変数表示してグラフにプロットを行いたいのですが
x_all.append(x[0])の位置で invalid index to scalar variable.とエラーが出ます.
参考にしているコードではこの方法でプロットできているのですがなぜこちらだとエラーがでたのかが分かりません.何かうまくいく方法が分かる方は教えていただきたいです.
import
1import matplotlib.pyplot as plt 2import matplotlib.ticker as tick 3import math as m 4from matplotlib.animation import ArtistAnimation 5 6r = 190 7theta = np.arange(0,2*m.pi+1,0.1) 8 9plt.rc("font",family="serif") 10plt.figure() 11plt.xlim([-200,200]) 12plt.ylim([-200,200]) 13plt.plot(r*np.cos(theta),r*np.sin(theta)) 14 15plt.gca().xaxis.set_minor_locator(tick.MultipleLocator(1)) 16plt.gca().yaxis.set_minor_locator(tick.MultipleLocator(1)) 17plt.grid(which="minor") 18 19anim = [] 20tt = np.arange(0,10,0.1) 21 22x_all = [] 23y_all = [] 24 25omegas = 0.02*m.pi 26omegap = 0.02*m.pi 27omegac = 0.02*m.pi 28x0 = 0 29y0 = 0 30d = 50 31 32for t in tt: 33 x = (90*np.cos(omegas*t)+95)*np.cos(omegap*t)+d*np.cos(omegac*t) 34 y = (90*np.cos(omegas*t)+95)*np.sin(omegap*t)+d*np.sin(omegac*t) 35 x_all.append(x[0]) 36 y_all.append(y[0]) 37 im = plt.plot(x,y,"o",x_all,y_all,"--",color="red",markersize=10,linewidth=2,aa=TRUE) 38 anim.append(im) 39 40anim = ArtistAnimation(fig,anim) 41 42plt.show() 43 44コード
コードの一部ではなく、import 文も含めて、コピペしたら動く完全なコードを貼っていただけますか?
ちなみにエラーはスカラーに対して配列のように x[0]、y[0] と配列のように添え字を取ろうとしてエラーになっています。
x_all.append(x)
y_all.append(y)
でいいのではないですか?
お返事が遅れてすみません.
完全なコードに貼り替えました.
追記していただいたもののようにまずはコードの書き換えをしてみます.
ありがとうございました!
追記していただいている内容で何とか作動はしました.しかし,前半の半径が190の円とアニメーションを同じ図上に表示させたいのですが,2つの画面が出てきてバラバラになってしまいます.
こちらの解決方法についても教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー