使用python的matplotlib畫正弦函數(shù)圖像,還要用到numpy庫,代碼如下9行所示:
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)西峽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
import numpy as np;
from matplotlib import pyplot as plt;
fig = plt.figure();
ax2= fig.add_subplot(111);
x=np.arange(0,100)/10;
y=np.sin(x);
ax2.plot(x,y);
plt.savefig('sine.png');
plt.show();
def func_sin():
# 準(zhǔn)備 X 軸的數(shù)據(jù), 0~10分成90段
x = np.linspace(0, 10, 90)
# 準(zhǔn)備 y 軸的數(shù)據(jù)
y = []
for i in x:
print(i)
y.append(math.sin(i))?
# 繪制線圖
plt.plot(x, y,c='r' )
# 添加標(biāo)題
plt.title("y = sin(x)")
# 添加 x 軸的信息
plt.xlabel("x")
# 添加 y 軸的信息
plt.ylabel("y")
# 顯示線圖
plt.show()
用python怎樣畫出如題所示的正余弦函數(shù)圖像? 如此編寫代碼,使其中兩個軸、圖例、刻度,大小,LaTex公式等要素與原圖一致,需要用到的代碼如下,沒有縮進(jìn):
#-*-codeing:utf-8;-*-
from matplotlib import pyplot as plt
import numpy as np
a=np.linspace(0,360,980)
b=np.sin(a/180*np.pi)
c=np.cos(a/180*np.pi)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim([0, 360])
ax.plot(a,b,label=r"$y=\sin(\theta)$")
ax.plot(a,c,label=r"$y=\cos(\theta)$")
ax.grid(True)
ax.set_ylabel(r"$y$")
ax.set_xlabel(r"$\theta$")
plt.xticks(np.arange(0,360+1,45))
plt.title("Sine Cosine Waves")
plt.legend()
plt.savefig("SinCosWaveDegFont.jpg")
plt.show()
代碼運(yùn)行show的窗口圖
代碼的截圖
代碼輸出的文件的圖
用泰勒級數(shù)
令x0=0
則f(x)=sinx=f(0)+f'(0)/1!*(x-0)+f''(0)/2!*(x-0)^2+……+f(n)(0)/n!*(x-0)^n+……
f'(x)=cosx,f''(x)=-sinx,f'''(x)=-cosx,f''''(x)=sinx=f(x),形成循環(huán)
所以sinx=0+1/1!*x+0/2!*x+(-1)/3!*x^3……+f(n)(0)/n!*(x-0)^n+……
即sinx=x/1!-x^3/3!+x^5/5!-x^7/7!+……
同理
f(x)=cosx,
f'(x)=-sinx,f''(x)=-cosx,f'''(x)=sinx,f''''(x)=cosx,也形成循環(huán)
所以cosx=1-x^2/2!+x^4/4!-x^6/6!+……
沒接觸過這個模塊。但是畫曲線用過其他的供參考。
import?numpy?as?np
import?matplotlib.pyplot?as?plt
x?=?np.linspace(-10,?10,?10000)
a?=?np.sin(x)
b?=?np.cos(x)
c?=?np.tan(x)
d?=?np.log(x)
plt.figure(figsize=(8,?4))
plt.plot(x,?a,?label="$sin(x)$",?color="green",?linewidth=1)
plt.plot(x,?b,?label="$cos(x)$",?color='blue',?linewidth=1)
plt.plot(x,?c,?"b--",?label="$tan(x)$",?color='red',?linewidth=1)
plt.plot(x,?d,?"b--",?label="$log(x)$",?color='grey',?linewidth=1)
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.title("PyPlot")
plt.xlim(-10,?10)
plt.ylim(-5,?5)
plt.legend()
plt.show()
因?yàn)?pow 是內(nèi)置的方法,而 sin 是 math 包提供的方法。
如果你自己定義了一個 pow 方法,就會覆蓋掉默認(rèn)的 pow 方法,但是如果你 import 了兩個包,兩個里面都有 sin 方法,那么使用的時候如果不指定是哪個的話就無法準(zhǔn)確執(zhí)行了。同理,如果引用的是外部包的方法或者類的話,就一定要使用包名引用。如果每次打包名嫌麻煩的話,可以使用 import math as m 這樣的縮寫,下次就可以使用 m.sin() 了。