0
IM製作與matplotlib和Python動畫的條件動畫情節,動畫的樣子: 與matplotlib
的主要思想是: 綠色圓圈在2每一個分組中,具有共8組(這就是爲什麼8軸)。當任何藍色圓圈通過一個綠色圓圈時,在相應時間內在對應軸上繪製一條垂直線。我不知道如何做到這一點。任何想法是歡迎:) 歡迎! 代碼:
circ = np.linspace(0,360,360)
circ*=2*np.pi/360
ra = np.empty(360)
wheel_position=[]
ra.fill(28120/2)
r=np.full((1,10*2),28120/2)
Ru=180-np.array([24,63,102,141,181.5,219,258,297,336,360])
Ru_pos=[]
rtm_pos= np.array([22.5,67.5,112.5,157.5,202.5,247.5,292.5,337.5])
rw=np.empty(16)
rw.fill(28120/2)
for i in rtm_pos:
wheel_position.append([i-2.3,i+2.3])
wheel_position=np.array(wheel_position)
wheel_position=2*np.pi/360*np.ravel(wheel_position)
for i in Ru:
Ru_pos.append([i-0.51,i+0.51])
Ru_pos=np.ravel(Ru_pos)
Ru_pos=2*np.pi/360*Ru_pos
def simData():
t_max=360
theta0=Ru_pos
theta=np.array([0,0])
t=0
dt=0.5
vel=2*np.pi/360
while t<t_max:
theta=theta0+vel*t
t=t+dt
yield theta, t
def simPoints(simData):
theta, t = simData[0], simData[1]
time_text.set_text(time_template%(t))
line.set_data(theta,r)
fig = plt.figure()
ax1.set_rmax(28120/2+1550)
ax1.grid(True)
ax1 = fig.add_subplot(121, projection='polar')
line, = ax1.plot([], [], 'bo', ms=3, zorder=2)
time_template = 'Time = %.1f s'
time_text = ax1.text(0.05, 0.9, '', transform=ax.transAxes)
ax1.set_ylim(0, 28120/2+5000)
ax1.plot(circ,ra, color='r', linestyle='-',zorder=1,lw=1)
ax1.plot(wheel_position,rw,'bo',ms=4.6,zorder=3,color='g')
ani = animation.FuncAnimation(fig, simPoints, simData, blit=False,\
interval=1, repeat=True)
plt.show()
你的代碼,就是不運行 - 我必須添加import語句,移動'ax1 = ...'行,並將錯字修復到'ax.transAxes'中。你已經有了右邊8個子圖的代碼嗎?這對於包含也是有用的。 – whrrgarbl