怎么⽤python画sin函数图像_⽤python画三⾓函数
Pyplot
pyplot提供了⼀个⽅便的matplotlib基于对象库的借⼝,是模仿了matlab,因此,在pyplot中的很多命令和参数,都和matlab相似。
简单的画图simple plot
我们想在同⼀个图中划出⼀个cos和sin函数图,第⼀步是获取cos和sin的数据,构建函数
import numpy as np
X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)
定义了⼀个numpy的数组X,从-π到π,共256个值,同时定义了C和S,也就是两个三⾓函数,也有256个值。也是⼀个数组,也可以说是列表。
在matplotlib中,有⼀系列的默认设置,⽤来⾃定义各种属性。可以通过配置各种属性,来调整整个图,
⽐如表格⼤⼩、像素、线的宽度,颜⾊和风格,线轴、坐标、表格属性、⽂本和字体属性。在很多情况下,默认的设置都是⽐较好⽤的,如果是有特殊的需求,可以修改这些属性值。
开始画图。
from matplotlib import pyplot as plt
import numpy as np
如何在上开店铺编程猫学习网站x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y)
plt.plot(x,z)
plt.show()
实例化默认值
在下⾯的脚本中,可以通过修改所有的表格属性值,来影响图标的展出。⽽在上⾯的图中,这些值都被明确的设定为默认值,现在可以通过交互式的操作,来看⼀下这些值影响的效果。
下⾯是线条属性值和线条样式。
from matplotlib import pyplot as plt
import numpy as np
#创建⼀个6×8的图框,像素为100
plt.figure(figsize=(6,8),dpi=100)
#创建⼀个⼦图,⽹格为1×1
plt.subplot(111)
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
y = np.sin(x)
z = np.cos(x)
#画图,使⽤不同的颜⾊和线条plt.plot(x,y,color='blue',linewidth=1.0,linestyle='-')
plt.plot(x,z,color='red',linewidth=1.0,linestyle='-')
#设置x轴的范围plt.xlim(-4,4)
#设置x轴的标尺刻度,从-4到4,取9个值icks(np.linspace(-4,4,9,endpoint=True))
#设置y轴的范围plt.ylim(-1,1)
#设置y轴的标尺刻度,从-1到1,取5个值icks(np.linspace(-1,1,5,endpoint=True))
plt.show()
画出来的图如下所⽰:
第⼀步:修改线条颜⾊,cos线条是蓝⾊,sin线条是红⾊,设置线条宽度。
plt.plot(x,y,color='blue',linewidth=1.0,linestyle='-')
plt.plot(x,z,color='red',linewidth=1.0,linestyle='-')
第⼆步:修改限制,当前表格的限制有⼀点紧,可以适当扩充⼀下表格⼤⼩,主要是x和y的两边。#放⼤x和y轴plt.xlim(x.min()*1.1,x.max()*1.1)
plt.ylim(y.min()*1.1,y.max()*1.1)
第三步:设置刻度值,因为在三⾓函数的图像中,x轴上⾯应该显⽰的是从-π到π的5个值。但是实际上显⽰的是数字,所以想通过修改这个刻度值,来显⽰。
#设置x轴的刻度值,显⽰pi句柄是什么东西
第四步:设置刻度值标签,实际上上⾯的图还是没有显⽰π。现在是已经均分了x轴,虽然现实的是3.14,最好还是显⽰π,在设置刻度值的时候,在第⼆个参数中也提供了对应的标签。
两个参数,将第⼀个参数值,⽤第⼆个参数来显⽰
第五步:移动spines
Spine是⼀组线,连接了轴⼼刻度,在数据区域的边界,可以放置在任意位置,⽬前是防⽌在轴⼼的边界上了。需要改变⼀下,移动到中间,坐标系有四个象限,放弃了顶部和右侧的部分,也就是轮廓。
instruction所有词性实际上意思是说,在这个图⾥⾯,spine是最外侧的4条线,将数据图像封闭在其中。通过移动spine,让坐标系的中⼼在原点,然后将上侧和右侧的spine删除,也就是 取消颜⾊。然后将底部和左侧的spine,移动到数据为0的区域。
有4个spine,分别是top,bottom,right和left,分别对应封闭这个数据图形的4个边。需要修改的代码如下:
#移动边界线,构建坐标系,原点为0
ax = a()#获取当前轴线实例ax.xaxis.set_ticks_position('bottom')#x轴线,使⽤spine中的bottom线
ax.yaxis.set_ticks_position('left')#y轴线,使⽤spine中的left线ax.spines['bottom'].set_position(('data',0))#将bottom线的位置设置为数据为0的位置ax.spines['left'].set_position(('data',0))#将left线的位置设置为数据为0的位置ax.spines['top'].set_color('none')#将top线的颜⾊设置为⽆ax.spines['right'].set_color('none')#将right线的颜⾊设置为⽆
第六步:增加图例
在图的左上⾓增加图例,需要在plot⽅法中增加关键字label,然后这个关键字会被在legend中调⽤。
#增加图例plt.plot(x,y,label='Sin(x)')
plt.plot(x,z,label='Cos(x)')
plt.legend(loc='upper left')#将图例放在左上⾓
第七步:注释特定点
通过注释命令,可以为特定的点增加注释,也就是在图中标出这些特定的点,假如要在途中,为2π/3标注出sin和cos的值。需要在曲线上,画⼀条垂直的虚线,然后通过箭头,在图上表⽰出来。
#在图上增加标注信息t = 2*np.pi/3
plt.plot([t,t],[s(t)], color ='blue', linewidth=1.5, line)
plt.scatter([t,],[np.cos(t),], 50, color ='blue')runnable接口
plt.annotate(r'$\cos(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
xy=(t, np.cos(t)), xycoords='data',
xytext=(+10, +30), textcoords='offset points', fontsize=16,
python代码画图案arrowprops=dict(arrow, connection))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论