Note
Go to the endto download the full example code.
Multiple Axes animation#
This example showcases:
how animation across multiple subplots works,
using a figure artist in the animation.
Output generated viamatplotlib.animation.Animation.to_jshtml.
importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlib.animationasanimationfrommatplotlib.patchesimportConnectionPatchfig,(axl,axr)=plt.subplots(ncols=2,sharey=True,figsize=(6,2),gridspec_kw=dict(width_ratios=[1,3],wspace=0),)axl.set_aspect(1)axr.set_box_aspect(1/3)axr.yaxis.set_visible(False)axr.xaxis.set_ticks([0,np.pi,2*np.pi],["0",r"$\pi$",r"$2\pi$"])# draw circle with initial point in left Axesx=np.linspace(0,2*np.pi,50)axl.plot(np.cos(x),np.sin(x),"k",lw=0.3)point,=axl.plot(0,0,"o")# draw full curve to set view limits in right Axessine,=axr.plot(x,np.sin(x))# draw connecting line between both graphscon=ConnectionPatch((1,0),(0,0),"data","data",axesA=axl,axesB=axr,color="C0",ls="dotted",)fig.add_artist(con)defanimate(i):x=np.linspace(0,i,int(i*25/np.pi))sine.set_data(x,np.sin(x))x,y=np.cos(i),np.sin(i)point.set_data([x],[y])con.xy1=x,ycon.xy2=i,yreturnpoint,sine,conani=animation.FuncAnimation(fig,animate,interval=50,blit=False,# blitting can't be used with Figure artistsframes=x,repeat_delay=100,)plt.show()
References
The use of the following functions, methods, classes and modules is shownin this example:
Tags:component: axescomponent: animation
Total running time of the script: (0 minutes 4.236 seconds)