I have written a code that plot some points and lines on the xy plane. It plots everything for a given value of n. So for different n I get my desired plots. But I want to animate these plots for different values of n, say, for n=1, 2, ..., 100. But I cannot do this animation.
Can anyone here help me to do this? Thank you.. I paste my code here:
My Code
import matplotlib as mpl mpl.rc('text', usetex = True) mpl.rc('font', family = 'serif') import matplotlib.pyplot as plt import numpy as np from matplotlib.patches import Circle fig = plt.subplots() ax = plt.axes(xlim=(-1.2, 1.2), ylim=(-1.2, 1.2)) plt.gca().set_aspect('equal', adjustable='box') plt.style.use(['ggplot','dark_background']) plt.rcParams['figure.figsize'] = (12, 8) n = 10 #I want to animate this n. p = 2 for k in range(0,n,1): theta1 = np.pi + 2*k*np.pi / n theta2 = np.pi + 2*p*k*np.pi / n x, y = np.cos(theta1), np.sin(theta1) x1, y1 = np.cos(theta2), np.sin(theta2) plt.scatter(x, y, s=50, c='violet', zorder=3) plt.plot([x,x1], [y,y1], color = 'w') circle = plt.Circle((0, 0), 1, color='c', fill=False, lw = 1) ax.add_artist(circle) #Customize the axes and gridlines: ax.grid(False) ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.spines['left'].set_visible(False) ax.spines['bottom'].set_visible(False) #TickMarks Customization: ax.set_xticks([]) ax.set_yticks([]) #plt.savefig('nthRoots.png', format='png', dpi=1000,bbox_inches='tight') plt.show() Is it possible to animate n over different values?
EDIT: Here I donot have only scatter plots ...so I cannot understand how to do this job using those links..!
My Attempt
#Animation. import matplotlib as mpl mpl.rc('text', usetex = True) #for LaTex notation in the Plot mpl.rc('font', family = 'serif') import matplotlib.pyplot as plt import numpy as np from matplotlib.patches import Circle from matplotlib import animation, rc rc('animation', html='html5') fig = plt.subplots() ax = plt.axes(xlim=(-1.2, 1.2), ylim=(-1.2, 1.2)) plt.gca().set_aspect('equal', adjustable='box') plt.style.use(['ggplot','dark_background']) plt.rcParams['figure.figsize'] = (12, 8) p = 2 #Plotting Function: def f(n): for k in range(0,n,1): theta1 = np.pi + 2*k*np.pi / n theta2 = np.pi + 2*p*k*np.pi / n x, y = np.cos(theta1), np.sin(theta1) x1, y1 = np.cos(theta2), np.sin(theta2) plt.scatter(x, y, s=50, c='violet', zorder=3) plt.plot([x,x1], [y,y1], color = 'w') circle = plt.Circle((0, 0), 1, color='c', fill=False, lw = 1) ax.add_artist(circle) #Customize the axes and gridlines: ax.grid(False) ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) ax.spines['left'].set_visible(False) ax.spines['bottom'].set_visible(False) #TickMarks Customization: ax.set_xticks([]) ax.set_yticks([]) plt.show() #Now I try to define a function for animating n in f(n) def animate(n): f(n) anim = animation.FuncAnimation(fig, animate, frames=100, interval=100, blit=True) #anim.save('Wave.mp4', writer = 'ffmpeg', fps = 2, dpi=500,extra_args=['-vcodec', 'libx264']) That's all I had... But this idea didn't work...I think I have to properly define animate(n). Any suggestion...! thanks.

FuncAnimationmethod...