找回密码
 会员注册
查看: 21|回复: 0

python之plot()和subplot()画图

[复制链接]

3

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2024-9-6 15:31:02 | 显示全部楼层 |阅读模式
python中,常常需要数据(结果、日志等)可视化,从而观察和记录数据,借助matplotlib包中plot()函数可以很好地展示数据。一、认识plot()函数和subplot()函数   plot()调用的常用语法:plt.plot(x,y,linestyle=,marker=,color=,linewidth=,markersize=,label=,)注意:1.其中linestyle=,marker=,color=,linewidth=,markersize=,label=,格式是可选的。      2.label是图例标签,不是图的二、运用plot()函数1.以下是一个完整的plot()函数运用例子:importmatplotlib.pyplotasplt#导入matplotlib包中的plot()函数importnumpyasnp#导入numpy数组包x=np.linspace(0,4,10)#定义x为0到5,10个点,大家根据自己需要修改参数y=x#定义y与X的关系#调用plot()函数,其中线条颜色:红色,线条样式为:虚线,点标记形状为:星型plt.plot(x,y,color='red',linestyle='--',marker='*')#通常情况会简化参数的书写,例如简写为‘r--*’(表示:红色/虚线/星型),大家根据需要可以修改参数#plt.plot(x,y,'r--*')plt.show()'运行运行 效果如下:从图中可以看到,效果展示较为单调,通过添加一些说明,可以进一步丰富图像。2.以下例子中,添加了、图例、轴等说明。importmatplotlib.pyplotasplt#导入matplotlib包中的plot()函数importnumpyasnp#导入numpy数组包x=np.linspace(0,4,10)#定义x为0到4,10个点,大家根据自己需要修改参数y=x#定义y与X的关系plt.plot(x,y,color='red',linestyle='--',marker='*',label='y=x')#注意这里添加了图例标签:'y=x'plt.title('linearfunction')#添加图plt.xlabel('Xaxis')#添加x轴名plt.ylabel('Yaxis')#添加y轴名plt.legend()#调用legend()图例函数plt.show()#展示图像'运行运行效果如下: 三.运用subplot()函数为了对比前后两者的区别,往往我们会调用subplot()函数,将图形窗口划分为多个子区域,并在每个子区域中绘制不同的内容,从而更加直观比较和分析多组结果,让可视化更加有条理。以下是一个子图划分的例子:(上述基础上增加了二次函数:y=x**2-4*x+4)importmatplotlib.pyplotasplt#导入matplotlib包中的plot()函数importnumpyasnp#导入numpy数组包x=np.linspace(0,4,10)#定义x为0到4,10个点,大家根据自己需要修改参数'''1.划分子图,子图区域为:2行2列,绘制二次函数'y=x',并放在第一行第1个'''plt.subplot(2,2,1)##预制位置为:第一行第1个y=x#定义一次函数‘y=x’plt.plot(x,y,color='red',linestyle='--',marker='*')#绘制‘y=x’图'''2.丰富‘y=x’内容,并放在第一行第2个'''plt.subplot(2,2,2)#预制位置为:第一行第2个plt.plot(x,y,color='red',linestyle='--',marker='*',label='y=x')#绘制‘y=x’plt.title('linearfunction')#添加图plt.xlabel('Xaxis')#添加x轴名plt.ylabel('Yaxis')#添加y轴名plt.legend()#调用legend()图例函数'''3.绘制二次函数'y=x**2-4*x+4',并放在第二行第1个'''plt.subplot(2,2,3)#预制位置第二行第1个y=x**2-4*x+4#定义二次函数plt.plot(x,y,color='green',linestyle='-.',marker='o',label='y=x*x-4*x+4')#绘制'y=x*x-4*x+4'plt.title('quadraticfunction')#添加图plt.xlabel('Xaxis')#添加x轴名plt.ylabel('Yaxis')#添加y轴名plt.legend()#调用legend()图例函数'''4.将一次函数'y=x'和二次函数'y=x**2-4*x+4'绘制在一张图上,并放在第二行第4个'''plt.subplot(2,2,4)y1=xy2=x**2-4*x+4plt.plot(x,y1,'r--*',label='y=x')plt.plot(x,y2,'g-.o',label='y=x*x-4*x+4')plt.title('fusion')plt.xlabel('Xaxis')plt.ylabel('Yaxis')plt.legend()plt.tight_layout()#tight_layout()函数来自动调整子图间距,从而避免部分内容(等)被遮住plt.show()#展示图像'运行运行效果如下所示:​​​​​​​四、总结1.plot()函数绘制图像,subplot()函数绘制不同子图在一个图像上。2.运用plot()函数时,需要明确数据的x和y,如果需要在同一个图像中展示多组数据,建议用图例标注每组数据,并且对设置每组数据的线条格式,以便进行每组数据分析和对比数据。3.运用subplot()函数,首先需要预置子图,然后再编辑子图展示的内容,注意运用tight_layout()函数进行整体布局,让每个子图独立分布区域。4.show()需要放置展示图的后面。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 05:47 , Processed in 0.419504 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表