Note

Go to the endto download the full example code.

Matplotlib unchained#

Comparative path demonstration of frequency from a fake signal of a pulsar(mostly known because of the cover for Joy Division's Unknown Pleasures).

Author: Nicolas P. Rougier

Output generated viamatplotlib.animation.Animation.to_jshtml.

importmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlib.animationasanimation# Fixing random state for reproducibilitynp.random.seed(19680801)# Create new Figure with black backgroundfig=plt.figure(figsize=(8,8),facecolor='black')# Add a subplot with no frameax=plt.subplot(frameon=False)# Generate random datadata=np.random.uniform(0,1,(64,75))X=np.linspace(-1,1,data.shape[-1])G=1.5*np.exp(-4*X**2)# Generate line plotslines=[]foriinrange(len(data)):# Small reduction of the X extents to get a cheap perspective effectxscale=1-i/200.# Same for linewidth (thicker strokes on bottom)lw=1.5-i/100.0line,=ax.plot(xscale*X,i+G*data[i],color="w",lw=lw)lines.append(line)# Set y limit (or first line is cropped because of thickness)ax.set_ylim(-1,70)# No ticksax.set_xticks([])ax.set_yticks([])# 2 part titles to get different font weightsax.text(0.5,1.0,"MATPLOTLIB ",transform=ax.transAxes,ha="right",va="bottom",color="w",family="sans-serif",fontweight="light",fontsize=16)ax.text(0.5,1.0,"UNCHAINED",transform=ax.transAxes,ha="left",va="bottom",color="w",family="sans-serif",fontweight="bold",fontsize=16)defupdate(*args):# Shift all data to the rightdata[:,1:]=data[:,:-1]# Fill-in new valuesdata[:,0]=np.random.uniform(0,1,len(data))# Update dataforiinrange(len(data)):lines[i].set_ydata(i+G*data[i])# Return modified artistsreturnlines# Construct the animation, using the update function as the animation director.anim=animation.FuncAnimation(fig,update,interval=10,save_count=100)plt.show()

Tags:component: animationplot-type: linepurpose: fun

Total running time of the script: (0 minutes 7.369 seconds)

Gallery generated by Sphinx-Gallery