import matplotlib.pyplot as plt
from matplotlib import animation
import numpy as np
fig, ax = plt.subplots(figsize=(10,10))
ax.set_aspect('equal')
ax.grid()
line_x=[0]*(day-1);line_y=[0]*(day-1);
line1_x=[0]*(day+day_count-1);line1_y=[0]*(day+day_count-1);
line2_x=[0]*(other_day-1);line2_y=[0]*(other_day-1);
line3_x=[0]*(other_day+day_count-1);line3_y=[0]*(other_day+day_count-1)
line_x.append(xelist[day-1])
line_y.append(yelist[day-1])
line1_x.append(xelist[day_count+day-1])
line1_y.append(yelist[day_count+day-1])
line2_x.append(xelist[other_day-1])
line2_y.append(yelist[other_day-1])
line3_x.append(xelist[other_day+day_count-1])
line3_y.append(yelist[other_day+day_count-1])
for i in range(365-len(line_x)):
line_x.append(0)
line_y.append(0)
for i in range(365-len(line1_x)):
line1_x.append(0)
line1_y.append(0)
for i in range(365-len(line2_x)):
line2_x.append(0)
line2_y.append(0)
for i in range(365-len(line3_x)):
line3_x.append(0)
line3_y.append(0)
line_e,= ax.plot([],[],'-g',lw=1,c='blue')
point_e,= ax.plot([AU], [0], marker="o", markersize=4, markeredgecolor="blue", markerfacecolor="blue")
text_e = ax.text(AU,0,'Earth')
point_s, = ax.plot([0], [0], marker="o", markersize=7, markeredgecolor="yellow", markerfacecolor="yellow")
text_s = ax.text(0,0,'Sun')
exdata,eydata = [],[]
sxdata,sydata = [],[]
lnxdata,lnydata = [],[]
ln1xdata,ln1ydata = [],[]
ln2xdata,ln2ydata = [],[]
ln3xdata,ln3ydata = [],[]
print(len(xelist))
line,=ax.plot([],[],lw=1,color='y')
line1,=ax.plot([],[],lw=1,color='y')
line2,=ax.plot([],[],lw=1,color='r')
line3,=ax.plot([],[],lw=1,color='r')
def update(i):
exdata.append(xelist[i])
eydata.append(yelist[i])
lnxdata.append(line_x[i])
lnydata.append(line_y[i])
ln1xdata.append(line1_x[i])
ln1ydata.append(line1_y[i])
ln2xdata.append(line2_x[i])
ln2ydata.append(line2_y[i])
ln3xdata.append(line3_x[i])
ln3ydata.append(line3_y[i])
line_e.set_data(exdata,eydata)
line.set_data(lnxdata,lnydata)
line1.set_data(ln1xdata,ln1ydata)
line2.set_data(ln2xdata,ln2ydata)
line3.set_data(ln3xdata,ln3ydata)
point_e.set_data(xelist[i],yelist[i])
text_e.set_position((xelist[i],yelist[i]))
point_s.set_data(xslist[i],yslist[i])
text_s.set_position((xslist[i],yslist[i]))
ax.axis('equal')
ax.set_xlim(-3*AU,3*AU)
ax.set_ylim(-3*AU,3*AU)
return line_e,point_s,point_e,text_e,text_s,line,line1,line2,line3,
anim = animation.FuncAnimation(fig,func=update,frames=len(xelist),interval =20,blit=True)
anim.save('basic_animation.mp4',fps=30,extra_args=['-vcodec','libx264'])