文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用matplotlib怎么绘制一个正余弦曲线图

2023-06-06 11:17

关注

这篇文章主要介绍了使用matplotlib怎么绘制一个正余弦曲线图,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:

1:首先我们需要导入基本的库

matplotlib numpy
matplotlib 是我们本章需要的库
numpy 是我们数据分析处理的常见库,在机器学习时也会经常用到。

一步一步来了
下面展示一些 内联代码片

第一步

#1:用到的方法及参数# linspace(start, stop, num=50, endpoint=True, # retstep=False, dtype=None)# 相关参数的说明# 指定在start到stop均分数值# start:不可省略# stop:有时包含有时不包含,根据endpoint来选择,默认包含# num:指定均分的数量,默认为50# endpoint:布尔值,可选,默认为True。包含stop就True,不包含就# False# retstep : 布尔值,可选,默认为False。如果为True,返回值和步长# dtype : 输出数据类型,可选。如果不指定,则根据前面参数的数据类型# 2:np.plot(x,y.color.lw,label,ls,mk,mec,mfc)# 其中X由所有输入点坐标的x值组成,Y是由与X中包含的x对应的y所组# 成的向量# color 指定线条的颜色# lw指定线条的宽度# lw指定线条的样式,默认为实现# mk可以指定数据标识符# ms可以指定标识符的大小# mec可以指定标识符的边界色彩# mfc标识符内部填充颜色
import matplotlib.pyplot as pltimport numpy as np#用于正常显示中文标签plt.rcParams['font.sans-serif']=['SimHei']# 用于正常显示符号plt.rcParams['axes.unicode_minus']=Falsex = np.linspace(-np.pi,np.pi,256,endpoint = 256)sin,cos = np.sin(x),np.cos(x)#绘制,并设置相关的参数,这里标签还不会显示出来,因为还没有#添加图例,具体往下面看plt.plot(x,sin,color = 'blue',lw=2.5,label = '正弦sin',mec='red')plt.plot(x,cos,color = 'red',lw = 2.5,label = '余弦cos()')plt.show() #显示

使用matplotlib怎么绘制一个正余弦曲线图

第二步

#用到的方法及参数# plt.xlim(xmin, xmax)# xmin:x轴上的最小值# xmax:x轴上的最大值#plt.ylim() 与上一样的道理#具体如何使用,可以看下面的实例代码
plt.xlim(x.min()*1.5,x.max()*1.5) #将x轴拉伸1.5倍plt.ylim(cos.min()*1.5,cos.max()*1.5) # 将y轴拉伸1.5倍plt.show()

使用matplotlib怎么绘制一个正余弦曲线图

第三步

#用到的方法与参数# plt.xticks([],[])# plt.yticks([],[])# plt.title('',color,color,..) #设置,里面的相关参数可以# 指定# plt.text(备注内容x轴的坐标,备注内容y轴的坐标 ,'备注内容',fontsize,color,..) #给右下角添加备注#想说的说这里面有连个参数,分别以列表的形式展示。现在只需要介绍是用来设置坐标刻度的。其中第二个参数列表是用来转义的。具体实例如下。

下面展示一些 内联代码片

在x轴的刻度上,我们需要我们需要按照规则的正余弦刻度来,而不是简单的实数,我们需要圆周率。因此在plt.xticks([],[])的第二个列表参数上需要转义。

#这里的r'$代表开始,$代表结尾,\代表转义,\pi代表圆周率的意思,r代表原始字符串。因此可以一一对应下来的。

plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])plt.yticks([-1,0,1])plt.title("绘图正余弦函数曲线图",fontsize = 16,color ='green')#给图片右下角添加备注标签plt.text(+2.2,-1.4,"by:jgdabc",fontsize=16,color = 'purple')plt.show()

使用matplotlib怎么绘制一个正余弦曲线图

用到的方法及参数:
plt.gca()#这个方法有点东西。
我要简单的去理解,Python库太繁杂了。有点头大。
plt.gca(),可以获得axes对象
什么又是axes对象?
在matplotlib中,整个图表为一个figure对象。每个figure
对象中可以包含一个或多个axes,而axes为坐标轴。每个axes
对象都是一个拥有自己坐标系统的绘图区域。我们可以理解为通
过这个方法我们可以获得axes对象,而通过这个对象可以帮助我们
方便的操作坐标轴,ok。具体操作看实例吧!

#我相信能看懂英文的不看注释也可以看懂ax = plt.gca() #获取Axes对象ax.spines['right'].set_color('none') #隐藏右边界ax.spines['top'].set_color('none')#隐藏上边界ax.xaxis.set_ticks_position('bottom') #x轴坐标刻度设置在坐标下面ax.spines['bottom'].set_position(('data',0))#将x坐标轴平移经过(0,0)的位置ax.yaxis.set_ticks_position('left')#将y轴坐标刻度设置在坐标轴左侧ax.spines['left'].set_position(('data',0))#将y轴坐标轴平移到(0,0)位置plt.show()

兄弟们是不是有点像了,还不够。

使用matplotlib怎么绘制一个正余弦曲线图

用到的方法及参数:

plt.legend()

添加图例

这样才会把我上述label的内容显示出来。

plt.legend(loc ='upper left',fontsize=12)plt.show()

使用matplotlib怎么绘制一个正余弦曲线图

第六步
注意第六步我们要描点,并画线

用到的方法及参数plt.plot() # 这个前面已经有说明,不再赘述,这里我们要加一个参数linewidth指定,将其变为虚线plt.scatter() #用来绘制两个点的位置plt.annotate #用来添加注释文字,具体解释我们在实例代码中说明```javascriptt1 = 2*np.pi/3 #取一个x轴坐标点t2 = -np.pi # 取第二个坐标点#根据画线,第一个列表是x轴坐标值,第二个列表是y轴坐标值plt.plot([t1,t1],[0,np.sin(t1)],color = 'b',linewidth = 1.5,linestyle = '--')#画线plt.plot([t2,t2],[0,np.cos(t2)],color ='r',linewidth=1.5,line)#标注两个点的位置(绘制散点图的方法)plt.scatter([t1,],[np.sin(t1),],50,color = 'b') #50为指定的大小#为图表添加注释plt.scatter([t2,],[np.cos(2),],50,color = 'r')plt.annotate( r'$\sin(\frac{2\pi}{3}=\frac{\sqrt{3}}{2}$)',       xy = (t1,np.sin(t1)), #点的位置       xycoords = 'data', #注释文字的偏移量       xytext = (+10,+30), #文字离点的横纵距离       textcoords = 'offset points',       fontsize =14,#注释的大小       arrowprops = dict(arrowstyle = '->',connectionstyle = 'arc3,rad=.2')#箭头指向的弯曲度)plt.annotate(r'$\cos(-\pi)=-1$',       xy = (t2,np.cos(t2)),       xycoords = 'data', #注释文字的偏移量       xytext = (0 ,-40), # 文字离点的横纵距离       textcoords = 'offset points',       fontsize = 14,#注释的大小       arrowprops = dict(arrowstyle = '->',connectionstyle='arc3,rad=.2')       ) #点的位置plt.show()

使用matplotlib怎么绘制一个正余弦曲线图

我想设置一下x轴和y轴的字体,一提到轴,就用ax.
我们直接上代码去解释

#遍历获取x轴和y轴的刻度,并设置字体for label in ax.get_xticklabels() + ax.get_yticklabels() :  label.set_fontsize(18)  label.set_bbox(dict(facecolor = 'r',edgecolor='g',alpha=0.5))#alpha代表透明度#绘制填充区域plt.fill_between(x,np.abs(x)<0.5,sin,sin>0.5,color='g',alpha =0.8)plt.fill_between(x,cos,where = (-2.5<x)&(x<-0.5),color = 'purple')plt.grid() #绘制网格线plt.savefig("D:\python学习数据可视化matplot学习.png",dpi = 300)保存图片plt.show()

注意这里保存一定要先保存,后show。

最终效果

使用matplotlib怎么绘制一个正余弦曲线图

给大家完整代码

import matplotlib.pyplot as pltimport numpy as npplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsex = np.linspace(-np.pi,np.pi,256,endpoint=256)sin,cos = np.sin(x),np.cos(x)plt.plot(x,sin,color = 'blue',lw=2.5,label = '正弦sin',mec='red')plt.plot(x,cos,color = 'red',lw = 2.5,label = '余弦cos()')plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(cos.min()*1.5,cos.max()*1.5)plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$'])plt.yticks([-1,0,1])plt.title("绘图正余弦函数曲线图",fontsize = 16,color ='green')plt.text(+2.2,-1.4,"by:jgdabc",fontsize=16,color = 'purple')ax = plt.gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.spines['bottom'].set_position(('data',0))ax.yaxis.set_ticks_position('left')ax.spines['left'].set_position(('data',0))plt.legend(loc ='upper left',fontsize=12)t1 = 2*np.pi/3t2 = -np.piplt.plot([t1,t1],[0,np.sin(t1)],color = 'b',linewidth = 1.5,linestyle = '--')plt.plot([t2,t2],[0,np.cos(t2)],color ='r',linewidth=1.5,line)plt.scatter([t1,],[np.sin(t1),],50,color = 'b')plt.scatter([t2,],[np.cos(2),],50,color = 'r')plt.annotate( r'$\sin(\frac{2\pi}{3}=\frac{\sqrt{3}}{2}$)',       xy = (t1,np.sin(t1)),       xycoords = 'data',       xytext = (+10,+30),       textcoords = 'offset points',       fontsize =14,       arrowprops = dict(arrowstyle= '->',connectionstyle = 'arc3,rad=.2')#箭头指向的弯曲度)plt.annotate(r'$\cos(-\pi)=-1$',       xy = (t2,np.cos(t2)),       xycoords = 'data',       xytext = (0 ,-40),       textcoords = 'offset points',       fontsize = 14,       arrowprops = dict(arrowstyle = '->',connectionstyle='arc3,rad=.2')       )for label in ax.get_xticklabels() + ax.get_yticklabels() :  label.set_fontsize(18)  label.set_bbox(dict(facecolor = 'r',edgecolor='g',alpha=0.5))plt.fill_between(x,np.abs(x)<0.5,sin,sin>0.5,color='g',alpha =0.8)plt.fill_between(x,cos,where = (-2.5<x)&(x<-0.5),color = 'purple')plt.grid()plt.savefig("D:\python学习数据可视化matplot学习.png",dpi = 300)plt.show()

到此这篇关于使用matplotlib怎么绘制一个正余弦曲线图的文章就介绍到这了,更多相关内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯