news 2026/6/15 6:10:37

Matplotlib库入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Matplotlib库入门

Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发
matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式

importmatplotlib.pyplotasplt

plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成

importmatplotlib.pyplotasplt plt.plot([3,1,4,5,2])plt.ylabel("Grade")plt.show()

plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量

importmatplotlib.pyplotasplt plt.plot([3,1,4,5,2])plt.ylabel("Grade")plt.savefig('test',dpi=600)#PNG文件plt.show()

plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据点

importmatplotlib.pyplotasplt plt.plot([0,2,4,6,8],[3,1,4,5,2])plt.ylabel("Grade")plt.axis([-1,10,0,6])plt.show()

pyplot的绘图区域

plt.subplot(nrows,ncols,plot_number,**kwargs)plt.subplot(3,2,4)#按两条横线,一条竖线,划分6个子区域plt.subplot(324)#在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域

importmatplotlib.pyplotaspltimportnumpyasnpdeff(t):returnnp.exp(-t)*np.cos(2*np.pi*t)a=np.arange(0.0,5.0,0.02)plt.subplot(211)plt.plot(a,f(a))plt.subplot(2,1,2)plt.plot(a,np.cos(2*np.pi*a),'r--')plt.show()

pyplot函数

plt.plot(x,y,format_string,**kwargs)x:X轴数据,列表或数组,可选 y:Y轴数据,列表或数组 format_string:控制曲线的格式字符串,可选**kwargs:第二组或更多(x,y,format_string)当绘制多条曲线时,各条曲线的x不能省略

例子

importmatplotlib.pyplotaspltimportnumpyasnp a=np.arange(10)plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)plt.show()

format_string: 控制曲线的格式字符串,可选由颜色字符、风格字符和标记字符组成

颜色字符说明颜色字符说明
‘b’蓝色‘m’洋红色 magenta
‘g’绿色‘y’黄色
‘r’红色‘k’黑色
‘c’青绿色 cyan‘w’白色
‘#00800’RGB某颜色‘0.8’灰度值字符串
风格字符说明
‘-’实线
‘–’破折线
‘-.’点划线
‘:’虚线
’ ’ ’ ’无线条
标记字符说明标记字符说明标记字符说明
‘.’点标记‘1’下花三角标记‘h’竖六边形标记
‘,’像素标记(极小点)‘2’上花三角标记‘H’横六边形标记
‘o’实心圈标记‘3’左花三角标记‘+’十字标记
‘v’倒三角标记‘4’右花三角标记‘x’x标记
‘^’上三角标记‘s’实心方形标记‘D’菱形标记
‘>’右三角标记‘p’实心五角标记‘d’瘦菱形标记
‘<’左三角标记‘*’星形标记‘|’垂直线标记
importmatplotlib.pyplotaspltimportnumpyasnp a=np.arange(10)plt.plot(a,a*1.5,'go-',a,a*2.5,'rx',a,a*3.5,'*',a,a*4.5,'b-.')plt.show()

**kwargs:第二组或更多(x,y,format_string)color:控制颜色,color='green'linestyle:线条风格,linestyle='dashed'marker:标记风格,marker='o'markerfacecolor:标记颜色,markerfacecolor='blue'markersize:标记尺寸,markersize=20……

pyplot的中文显示

第一种方法

pyplot并不默认支持中文显示,需要rcParams修改字体实现

importmatplotlib.pyplotaspltimportmatplotlib matplotlib.rcParams['font.family']='Simhei'#黑体plt.plot([3,1,4,5,2])plt.ylabel("纵轴(值)")plt.show()
属性说明
‘font.family’用于显示字体的名字
‘font.style’字体风格,正常’normal’或 斜体’italic’
‘font.size’字体大小,整数字号或者’large’、‘x‐small’
中文字体的种类 rcParams[‘font.family’]
中文字体说明
‘SimHei’中文黑体
‘Kaiti’中文楷体
‘LiSu’中文隶书
‘FangSong’中文仿宋
‘YouYuan’中文幼圆
‘STSong’华文宋体
例子
importmatplotlib.pyplotaspltimportmatplotlibimportnumpyasnp matplotlib.rcParams['font.family']='STSong'matplotlib.rcParams['font.size']=20a=np.arange(0.0,5.0,0.02)plt.xlabel('横轴:时间')plt.ylabel('纵轴:振幅')plt.plot(a,np.cos(2*np.pi*a),'r--')plt.show()

第二种方法

在有中文输出的地方,增加一个属性:fontproperties

importmatplotlib.pyplotaspltimportnumpyasnp a=np.arange(0.0,5.0,0.02)plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=20)plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=20)plt.plot(a,np.cos(2*np.pi*a),'r--')plt.show()

pyplot的文本显示函数

函数说明
plt.xlabel()对 X轴增加文本标签
plt.ylabel()对 Y轴增加文本标签
plt.title()对图形整体增加文本标签
plt.text()在任意位置增加文本
plt.annotate()在图形中增加带箭头的注解
例子
importmatplotlib.pyplotaspltimportnumpyasnp a=np.arange(0.0,5.0,0.02)plt.plot(a,np.cos(2*np.pi*a),'r--')plt.xlabel('横轴:时间',fontproperties='SimHei',fontsize=15,color='green')plt.ylabel('纵轴:振幅',fontproperties='SimHei',fontsize=15)plt.title(r'正弦波实例 $y=cos(2\pi,x)$',fontproperties='SimHei',fontsize=15)plt.text(2,1,r'$\mu=100$',fontsize=15)plt.axis([-1,6,-2,2])plt.grid(True)plt.show()

#新增语句plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.1,width=2))

pyplot的子绘图区域

plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始
plt.subplot2grid((3,3), (1,0), colspan=2)

pyplot的基础图标函数

函数说明
plt.plot(x,y,fmt,…)绘制一个坐标图
plt.boxplot(data,notch,position)绘制一个箱形图
plt.bar(left,height,width,bottom)绘制一个条形图
plt.barh(width,bottom,left,height)绘制一个横向条形图
plt.polar(theta, r)绘制绘制极坐标图
plt.pie(data, explode)绘制饼图
plt.psd(x,NFFT=256,pad_to,Fs)绘制功率谱密度图
plt.specgram(x,NFFT=256,pad_to,F)绘制谱图
plt.cohere(x,y,NFFT=256,Fs)绘制X ‐ Y的相关性函数
plt.scatter(x,y)绘制散点图,其中,x 和 y长度相同
plt.step(x,y,where)绘制步阶图
plt.hist(x,bins,normed)绘制直方图
plt.contour(X,Y,Z,N)绘制等值图
plt.vlines()绘制垂直图
plt.stem(x,y,linefmt,markerfmt)绘制柴火图
plt.plot_date()绘制数据日期

饼图的绘制

importmatplotlib.pyplotasplt labels='Frogs','Hogs','Dogs','Logs'sizes=[15,30,45,10]explode=(0,0.1,0,0)plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=False,startangle=90)plt.show()

直方图的绘制

importmatplotlib.pyplotaspltimportnumpyasnp np.random.seed(10)mu,sigma=100,20#均值和标准差a=np.random.normal(mu,sigma,size=100)plt.hist(a,40,normed=1,histtype='stepfilled',facecolor='b',alpha=0.75)#plt.hist(a,10,normed=1,histtype='stepfilled',facecolor='b',alpha=0.75)plt.title('Histogram')plt.show()

绘制极坐标图

importmatplotlib.pyplotaspltimportnumpyasnp N=10theta=np.linspace(0.0,2*np.pi,N,endpoint=False)radii=10*np.random.rand(N)width=np.pi/2*np.random.rand(N)ax=plt.subplot(111,projection='polar')bars=ax.bar(theta,radii,width=width,bottom=0.0)forr,barinzip(radii,bars):bar.set_facecolor(plt.cm.viridis(r/10.))bar.set_alpha(0.5)plt.show()

绘制散点图

importmatplotlib.pyplotaspltimportnumpyasnp fig,ax=plt.subplots()ax.plot(10*np.random.randn(100),10*np.random.randn(100),'o')ax.set_title('Simple Scatter')plt.show()

引力波的绘制

importmatplotlib.pyplotaspltimportnumpyasnpfromscipy.ioimportwavfile rate_h,hstrain=wavfile.read(r"H1_Strain.wav","rb")rate_l,lstrain=wavfile.read(r"L1_Strain.wav","rb")reftime,ref_H1=np.genfromtxt('wf_template.txt').transpose()htime_interval=1/rate_h ltime_interval=1/rate_l fig=plt.figure(figsize=(12,6))#丢失信号起始点htime_len=hstrain.shape[0]/rate_h htime=np.arange(-htime_len/2,htime_len/2,htime_interval)plth=fig.add_subplot(221)plth.plot(htime,hstrain,'y')plth.set_xlabel('Time (seconds)')plth.set_ylabel('H1 Strain')plth.set_title('H1 Strain')ltime_len=lstrain.shape[0]/rate_l ltime=np.arange(-ltime_len/2,ltime_len/2,ltime_interval)pltl=fig.add_subplot(222)pltl.plot(ltime,lstrain,'g')pltl.set_xlabel('Time (seconds)')pltl.set_ylabel('L1 Strain')pltl.set_title('L1 Strain')pltref=fig.add_subplot(212)pltref.plot(reftime,ref_H1)pltref.set_xlabel('Time (seconds)')pltref.set_ylabel('Template Strain')pltref.set_title('Template')fig.tight_layout()plt.savefig("Gravitational_Waves_Original.png")plt.show()plt.close(fig)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 14:53:36

隐形眼镜护理液浸泡的关键

使用护理液浸泡隐形眼镜并非只是倒一点、泡一泡那么简单&#xff0c;这一步做不对的话&#xff0c;镜片不干净不说&#xff0c;还可能伤眼睛。那么&#xff0c;浸泡过程中有哪些关键点需要大家注意的呢&#xff1f; 护理液的核心作用是清洁、杀菌以及保湿&#xff0c;全面保护和…

作者头像 李华
网站建设 2026/6/13 19:24:38

Obsidian主页定制终极指南:打造你的专属知识管理门户

还在为Obsidian杂乱无章的主页而烦恼吗&#xff1f;想要一个既美观又实用的知识管理门户吗&#xff1f;今天就来教你如何通过Farouks Homepage主题&#xff0c;快速打造个人专属的Obsidian主页。这个主题专为知识管理而设计&#xff0c;集成了卡片布局、动态进度条和智能倒计时…

作者头像 李华
网站建设 2026/6/15 9:35:38

三步完成InternLM3模型4bit量化:显存直降50%的终极部署指南

三步完成InternLM3模型4bit量化&#xff1a;显存直降50%的终极部署指南 【免费下载链接】InternLM Official release of InternLM series (InternLM, InternLM2, InternLM2.5, InternLM3). 项目地址: https://gitcode.com/gh_mirrors/in/InternLM 还在为AI大模型部署时爆…

作者头像 李华
网站建设 2026/6/15 17:12:13

fcitx5 vs ibus:中文输入法性能深度对比

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个输入法性能测试工具&#xff0c;功能包括&#xff1a;1. 测量输入法启动时间 2. 记录输入响应延迟 3. 统计内存和CPU占用 4. 测试词库加载速度 5. 生成可视化对比报告。要求…

作者头像 李华
网站建设 2026/6/15 18:38:12

智能简历解析终极指南:如何用AI技术精准提取关键信息

智能简历解析终极指南&#xff1a;如何用AI技术精准提取关键信息 【免费下载链接】Resume-Matcher Resume Matcher is an open source, free tool to improve your resume. It works by using language models to compare and rank resumes with job descriptions. 项目地址…

作者头像 李华
网站建设 2026/6/15 8:37:20

springAI学习 一

一、Spring AI 概述 什么是Spring AI&#xff1f; Spring生态的AI集成框架 统一API访问不同AI服务&#xff08;OpenAI、Azure OpenAI、Anthropic等&#xff09; 支持多种AI功能&#xff1a;聊天、文生图、嵌入、向量存储等 Spring AI 是一个用于 AI 工程的应用框架。 其目标…

作者头像 李华