import math as m import numpy as np import matplotlib.pyplot as plt import scipy.special as sp # import matplotlib.animation as animation def draw_frame(n,filename,line_color): fig = plt.figure() plt.axes([0.02,0.13,0.9,0.8]) plt.hold(True) plt.xlim(-1.5,1.5) plt.ylim(-4,2) # Set up the spines ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0)) ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0)) # Set up the label ax.text(0.5,-2,'N='+str(n),fontsize=24,color=line_color) Q = [] # Draw the original function (ORG) curve X = np.arange(-0.999, 1.5, 0.001) ORG = np.log(X+1) a = plt.plot(X, ORG, '-', color='black', lw=3) Q.append(a) # Draw the approximation function (APPR) curve X = np.arange(-1.5, 1.5, 0.001) i=1 APPR = (-1)**(i+1)*(X**i)/i while (i<n): i = i+1 APPR = APPR+(-1)**(i+1)*(X**i)/i a = plt.plot(X, APPR, '-', color=line_color, lw=3) Q.append(a) plt.savefig(filename) draw_frame(1,'frame01.jpg','#b30000') draw_frame(2,'frame02.jpg','#00b300') draw_frame(3,'frame03.jpg','#0000b3') draw_frame(4,'frame04.jpg','#b3b300') draw_frame(5,'frame05.jpg','#00b3b3') draw_frame(6,'frame06.jpg','#b300b3') draw_frame(7,'frame07.jpg','#b3b3b3') draw_frame(8,'frame08.jpg','#3300b3') draw_frame(9,'frame09.jpg','#33b300') draw_frame(10,'frame10.jpg','#0033b3') draw_frame(15,'frame11.jpg','#b3b333') draw_frame(20,'frame12.jpg','#334433') draw_frame(45,'frame13.jpg','#ff0000') draw_frame(100,'frame14.jpg','#0000ff') # To generate the final GIF file, use the shell command: # convert -antialias -loop 0 -delay 100 -compress LZW frame* Logarithm_GIF.gif