重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用python怎样画出如题所示的正余弦函数图像? 如此编写代码,使其中两个轴、图例、刻度,大小,LaTex公式等要素与原图一致,需要用到的代码如下,没有缩进:
成都创新互联于2013年创立,先为巴彦淖尔等服务建站,巴彦淖尔等地企业,进行企业商务咨询服务。为巴彦淖尔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
#-*-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()
代码运行show的窗口图
代码的截图
代码输出的文件的图
用泰勒级数
令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),形成循环
所以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,也形成循环
所以cosx=1-x^2/2!+x^4/4!-x^6/6!+……
使用python的matplotlib画正弦函数图像,还要用到numpy库,代码如下9行所示:
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();
因为 pow 是内置的方法,而 sin 是 math 包提供的方法。
如果你自己定义了一个 pow 方法,就会覆盖掉默认的 pow 方法,但是如果你 import 了两个包,两个里面都有 sin 方法,那么使用的时候如果不指定是哪个的话就无法准确执行了。同理,如果引用的是外部包的方法或者类的话,就一定要使用包名引用。如果每次打包名嫌麻烦的话,可以使用 import math as m 这样的缩写,下次就可以使用 m.sin() 了。
math.sin(60)。
讲述一下Python代码中sin()函数的简介说明,sin()函数功能用于计算出x弧度-所对应的的正弦值。sin()函数语法,math.sin(x)。