使用matplotlib模擬下e^x的麥克勞林展開式,用plt畫圖一開始覺得還是挺有意思的。
import執行**,plt展示的結果如下(展開式的項數越多,越接近原函式):matplotlib.pyplot as plt
import
numpy as np
import
random
'''e^x的麥克勞林展開式:
e^x= f(0)+ f′(0)x+ f″(0)x ²/ 2!+...+ fⁿ(0)x^n/n!+rn(x)
=1+x+x^2/2!+x^3/3!+...+x^n/n!+rn(x)
'''#
階乘函式
deffactorial(n):
x = 1
for i in range(1,n+1):
x = x *i
returnx#
y值函式
defconsy(n,x):
y = 1
for i in range(1,n):
y += x**i/factorial(i)
returny#
生成影象
defmoniplot(n,x):
#定義乙個顏色集合
colors = ['
g','
b','
black
','cyan
','lightgreen
','yellow
','deeppink
','darkorchid']
plt.figure()
#原函式
y = np.e**x
#畫原函式影象並進行標記
plt.plot(x,y,'
r-',linewidth=2,label='
e^x'
)
#麥克勞林展開新增到影象上
for i in range(2,n):
y =consy(i,x)
#隨機選擇顏色
color = colors[random.randint(0,len(colors)-1)]
linestyle = '--'
#畫影象,並對最後乙個進行標記
if i ==n:
plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle,label="
nearly e^x")
else
: plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle)
plt.plot(x,y,color=color,linewidth=1,linestyle=linestyle)
#新增注釋
plt.text(1.2, consy(10,3.9),"
maclaurin's series of e^x
",size=12)
#將標記繪製圖例,位置為於中間左側
plt.legend(['
e^x',"
nearly e^x
"], loc = '
center left
')
plt.show()
#定義 x , y
x = np.linspace(1,4,80)
#原函式
#y = np.e**x
#maclaurin展開 3項
#y1 = consy(2,x)
#展開 4項
#y2 = consy(3,x)
#tylor 5項
#y3 = consy(4,x)
#呼叫生成影象
moniplot(10,x)
#關閉圖
plt.close()
matplotlib 基本使用
1,plot import matplotlib.pyplot as plt import numpy as np numpy庫,製作資料 x np.linspace 1,1,50 y 2 x 1 plt.plot x,y plot.show linspace x,y,n 範圍 x,y n個點 2,...
matplotlib的基本使用
容器層 1 canvas 畫布,位於最底層,使用者一般接觸不到 2 figure 圖,建立在canvas之上 3 axes 座標系 繪圖區,建立在figure之上,圖形繪製在這個範圍 輔助顯示層 最好放在影象層之後編寫 1 起到輔助作用,提高圖的可讀性 2 網格線,圖例,x y軸的標籤,圖的標籤,刻...
matplotlib的使用記錄
隨手記點東西,想到什麼補充什麼。子圖t1 np.arange 0,5,0.1 t2 np.arange 0,5,0.02 plt.figure 1 建立乙個圖,名為1 plt.subplot 2,2,1 在圖1裡面定義2行2列,一共4個子圖位置,取第1個位置 plt.plot t2,np.cos 2...