1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python中内置数学函数详解和实例应用之三角函数曲线_初级阶段(三)

python中内置数学函数详解和实例应用之三角函数曲线_初级阶段(三)

时间:2020-03-31 06:20:20

相关推荐

python中内置数学函数详解和实例应用之三角函数曲线_初级阶段(三)

学习目标:

利用matplotlib 和 numpy 画三角函数曲线

学习内容:

正弦,余弦,正切,余切函数曲线

双曲正弦,双曲余弦,双曲正切,双曲余切函数曲线

反正弦,反余弦,反正切,反余切函数曲线

反双曲正弦,反双曲余弦,反双曲正切,反双曲余切函数曲线


学习产出:

1.1, python画正弦函数曲线,保持原有的position不变的情况,代码如下:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sin(x)plt.plot(x, y, color = 'blue', linewidth = 2.0, linestyle= '-')#define line color and styleplt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in y-axisplt.show()

正弦曲线图片如下:

利用spine,在数据区域的边界,可以放置在任意位置, 在上述代码中加入,完整的代码和曲线如下:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sin(x)plt.plot(x, y, color = 'blue', linewidth = 2.0, linestyle= '-')#define line color and styleplt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in y-axis#move the boundary line,set origin is 0ax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.show()

去掉边框的正弦曲线图片如下:

1.2, python画余弦函数曲线, 我们在正弦曲线的代码中加入z = np.cos(x)的代码,同时需要区分正弦曲线和余弦曲线:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sin(x)z = np.cos(x)plt.plot(x, y, color = 'blue', linewidth = 2.0, linestyle= '-')#define line color and styleplt.plot(x, z, color = 'red', linewidth = 2.0, linestyle= '-')plt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in y-axis#move the boundary line,set origin is 0ax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.plot(x, y, label = 'sin(x)') #add label and show on the graphplt.plot(x, z, label = 'cos(x)')plt.legend(loc = 'upper left')plt.show()

去掉边框的正弦,余弦曲线图片如下:

1.3, python画正切函数曲线, 我们在上述的正余弦曲线的代码中加入a = np.tan(x)的代码,同时需要区分正弦曲线,余弦曲线和正切曲线:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sin(x)z = np.cos(x)a = np.tan(x)plt.plot(x, y, color = 'blue', label = 'sin(x)',linewidth = 2.0, linestyle= '-')#define line color and styleplt.plot(x, z, color = 'red', label = 'cos(x)', linewidth = 2.0, linestyle= '--')plt.plot(x, a, color = 'yellow', label = 'tan(x)', linewidth = 2.0, linestyle= '-.')plt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in y-axis#move the boundary line,set origin is 0ax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = (0, 0.92))plt.show()

去掉边框的正弦,余弦, 正切曲线图片如下:

1.4, 我们直接画出sin(x), cos(x), tan(x), cot(x)的函数曲线图吧

1.5, python画双曲正弦函数曲线, 由于y的值域范围和正弦余弦函数不同,我们重新创建一个双曲正弦曲线画布:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sinh(x)plt.plot(x, y, color = 'blue', label = 'sinh(x)',linewidth = 2.0, linestyle= '-')#define line color and styleplt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-10,-5,5,10],[r'$-10$',r'$-5$',r'$5$',r'$10$']) # 4 values in y-axis#move the boundary line,set origin is 0ax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = 'upper left')plt.show()

去掉边框的双曲正弦曲线图片如下:

1.6, python画双曲余弦函数曲线,在双曲正弦函数曲线的画布基础上添加y = np.cosh(x), 同时区分两个函数曲线:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sinh(x)z = np.cosh(x)plt.plot(x, y, color = 'blue', label = 'sinh(x)',linewidth = 2.0, linestyle= '-')#define line color and styleplt.plot(x, z, color = 'red', label = 'cosh(x)', linewidth = 2.0, linestyle= '--')plt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-10,-5,5,10],[r'$-10$',r'$-5$',r'$5$',r'$10$']) # 4 values in y-axis#move the boundary line,set origin is 0ax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = 'upper left')plt.show()

去掉边框的双曲正弦,双曲余弦曲线图片如下:

1.7, python画双曲正切函数曲线,在双曲正弦函数和双曲余弦函数曲线的画布基础上添加a = np.tanh(x), 同时区分三个函数曲线:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-np.pi, np.pi, 256, endpoint = True) #numpy array:[-π, π], total 256 valuesy = np.sinh(x)z = np.cosh(x)a = np.tanh(x)plt.plot(x, y, color = 'blue', label = 'sinh(x)',linewidth = 2.0, linestyle= '-')#define line color and styleplt.plot(x, z, color = 'red', label = 'cosh(x)', linewidth = 2.0, linestyle= '--')plt.plot(x, a, color = 'purple', label = 'tanh(x)', linewidth = 2.0, linestyle= '-.')plt.xlim(x.min() * 1.1, x.max() * 1.1)#limit x rangeplt.ylim(y.min() * 1.1, y.max() * 1.1)#limit y rangeplt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) # 5 values in x_axisplt.yticks([-10,-5,5,10],[r'$-10$',r'$-5$',r'$5$',r'$10$']) # 4 values in y-axis#move the boundary line,set origin is 0ax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = 'upper left')plt.show()

去掉边框的双曲正弦,双曲余弦, 双曲正切曲线图片如下:

1.8, 我们再直接画出sinh(x), cosh(x), tanh(x)和coth(x)的函数曲线图吧。

1.9 python画反正弦函数曲线, 我们再重新创建一个反正弦曲线画布,注意x轴和y轴是等比例的:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-1, 1, 1000, endpoint = True) #x range changedy = np.arcsin(x)plt.plot(x, y, color = 'blue', label = 'arcsin(x)',linewidth = 1.0, linestyle= '-')#define line color and styleplt.xlim(-1, 1)#limit x rangeplt.ylim(-np.pi/2, np.pi/2)#limit y rangeplt.xticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in x-axisplt.yticks([-np.pi/2, -0.75, 0.75, np.pi/2],[r'$-\pi/2$',r'$-0.75$',r'$0.75$',r'$\pi/2$']) # 4 values in y_axis#move the boundary line,set origin is 0plt.axis('equal') #x-axis and y-axis scale equallyax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = 'upper left')plt.show()

去掉边框的反正弦曲线函数:

1.10, python画反余弦函数曲线, 我们在反正弦曲线画布基础上增加,注意x轴和y轴是等比例的:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-1, 1, 1000, endpoint = True) # x range changedy = np.arcsin(x)z = np.arccos(x)plt.plot(x, y, color = 'blue', label = 'arcsin(x)',linewidth = 1.0, linestyle= '-')#define line color and styleplt.plot(x, z, color = 'red', label = 'arccos(x)',linewidth = 1.0, linestyle= '--') plt.xlim(-1, 1)#limit x rangeplt.ylim(-np.pi/2, np.pi/2)#limit y rangeplt.xticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in x-axisplt.yticks([-np.pi/2, -0.75, 0.75, np.pi/2],[r'$-\pi/2$',r'$-0.75$',r'$0.75$',r'$\pi/2$']) # 4 values in y_axis#move the boundary line,set origin is 0plt.axis('equal') #x-axis and y-axis scale equallyax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = 'upper left')plt.show()

去掉边框的反正弦, 反余弦函数曲线函数:

1.11, python画反正切函数曲线, 我们在反正弦曲线和反余弦曲线画布基础上增加,注意x轴和y轴是等比例的:

import numpy as npfrom matplotlib import pyplot as plt plt.figure(figsize = (6, 8), dpi = 200) # create a frame, dpi = 200plt.subplot(111) #create a subgraph, grid = 1 * 1x = np.linspace(-1, 1, 1000, endpoint = True) # x range changedy = np.arcsin(x)z = np.arccos(x)a = np.arctan(x)plt.plot(x, y, color = 'blue', label = 'arcsin(x)',linewidth = 1.0, linestyle= '-')#define line color and styleplt.plot(x, z, color = 'red', label = 'arccos(x)',linewidth = 1.0, linestyle= '--') plt.plot(x, a, color = 'purple', label = 'arctan(x)', linewidth = 1.0, linestyle= '-.')plt.xlim(-1, 1)#limit x rangeplt.ylim(-np.pi/2, np.pi/2)#limit y rangeplt.xticks([-1,-0.5,0,0.5,1],[r'$-1$',r'$-0.5$',r'$0$',r'$0.5$',r'$1$']) # 5 values in x-axisplt.yticks([-np.pi/2, -0.75, 0.75, np.pi/2],[r'$-\pi/2$',r'$-0.75$',r'$0.75$',r'$\pi/2$']) # 4 values in y_axis#move the boundary line,set origin is 0plt.axis('equal') #x-axis and y-axis scale equallyax = plt.gca() #get current line positionax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left')ax.spines['bottom'].set_position(('data', 0)) #set bottom position to 0ax.spines['left'].set_position(('data', 0))ax.spines['top'].set_color('none')#cancel original boundaryax.spines['right'].set_color('none')plt.legend(loc = 'upper left')plt.show()

去掉边框的反正弦, 反余弦函数,反正切函数曲线函数:

1.12, 我们再直接画出arcsin(x), arccos(x), arctan(x)和arccot(x)的函数曲线图吧。

1.13, 最后还有反双曲正弦,反双曲余弦,反双曲正切, 反双曲余切函数曲线,留给大家自己去发挥吧,注意x和y的值域。

最后,祝大家学习快乐,转载请注明出处。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。