网易首页 > 网易号 > 正文 申请入驻

Python:Matplotlib 库常用函数及应用

0
分享至

在数据分析、科学计算以及机器学习项目中,数据可视化(Data Visualization)是一项重要环节。通过图形化方式展示数据,可以帮助我们理解数据分布、发现规律以及验证分析结果。

例如,在一组数据中:

[10, 15, 20, 18, 25]

如果只以数字形式呈现,很难直观理解变化趋势;但若绘制为折线图,数据变化便可以一目了然。

Matplotlib 是 Python 中最基础、最常用的可视化库之一,具有以下特点:

• 支持多种图形类型(折线图、散点图、柱状图、直方图等)

• 与 NumPy、Pandas 等科学计算库高度兼容

• 支持高度自定义的图形样式

• 提供面向函数(pyplot)与面向对象(Figure/Axes)两种绘图方式

• 可以导出多种格式图像(PNG、PDF、SVG 等)

安装 Matplotlib:

pip install matplotlib

导入库:

import matplotlib.pyplot as plt

在 Matplotlib 中,大多数绘图函数都通过 matplotlib.pyplot 模块调用。

pyplot 提供了类似 MATLAB 的状态式绘图接口,本质上是对 Figure 与 Axes 对象操作的封装。

一、Matplotlib 的图形结构

理解 Matplotlib 的核心结构,有助于更清晰地理解各种绘图函数的作用。

Matplotlib 的图形系统由三个主要层次组成:

Figure → Axes → Artist

这三个层次可以理解为:

Figure表示整个图形对象,是所有图形元素的顶层容器。

Axes表示一个绘图坐标系区域,绝大多数绘图操作都发生在 Axes 上。

Artist是图形中的具体元素,例如线条、文本、坐标轴和图例。

从视觉上可以理解为:

 └── Axes(另一个子图)

在日常语言中,人们有时把 Figure 称为“画布”,而 Axes 则是画布上的绘图区。

在代码中通常通过 subplots() 同时创建 Figure 与 Axes:

fig, ax = plt.subplots()

此时:

• fig 表示整个图形对象

• ax 表示绘图坐标系

后续绘图操作通常发生在 ax 上:

ax.plot(x, y)

这种方式称为“面向对象绘图方式”,也是 Matplotlib 官方推荐的使用方式。

二、基础绘图函数

Matplotlib 的核心功能是绘制各种统计图形,例如折线图、散点图、柱状图和直方图等。

plot()

用于绘制折线图(Line Plot),是 Matplotlib 中最常用的函数。

)

参数说明:

• x:横轴数据,通常为列表或 NumPy 数组。如果省略 x,则 Matplotlib 会自动生成从 0 开始的序列

• y:纵轴数据

• label:图例名称

• color:线条颜色

• linestyle:线条线型,例如 "-"、"--"、":"

• linewidth:线宽

• marker:数据点标记,例如 'o'、's'、'^'

• markersize:标记大小

• alpha:图形元素透明度

返回值:

返回一个 Line2D 对象列表。

示例:

plt.show()

plot() 是 Matplotlib 中最基础的绘图函数,适用于:

• 时间序列分析

• 函数曲线绘制

• 数据趋势展示

以下示例默认已导入 Matplotlib 和 NumPy。

scatter()

用于绘制散点图(Scatter Plot)。

)

参数说明:

• x:横轴数据

• y:纵轴数据

• s:散点大小(size)

• c:散点颜色(color)

• marker:散点形状

• cmap:颜色映射

• alpha:散点图形透明度

返回值:

返回 PathCollection 对象。

示例:

plt.show()

散点图常用于观察两个变量之间的关系,例如回归分析、相关性分析等。

bar()

用于绘制柱状图(Bar Chart)。

)

参数说明:

• x:柱子位置或类别标签

• height:柱子的高度

• width:柱子宽度

• color:柱子颜色

• align:对齐方式

• alpha:图形元素透明度

返回:

返回 BarContainer 对象。

示例:

plt.show()

柱状图常用于比较不同类别的数据。

hist()

用于绘制直方图(Histogram)。

)

参数说明:

• x:输入数据序列

• bins:分箱数量

• range:统计范围

• density:指定是否归一化为概率密度

• color:指定颜色

• alpha:指定透明度

返回:

返回三个对象 (n, bins, patches):

patches:绘制的矩形对象集合

示例:

plt.show()

直方图常用于观察数据分布,例如判断数据是否接近正态分布。

pie()

用于绘制饼图(Pie Chart)。

)

参数说明:

• x:各部分的数据值

• labels:指定标签

• autopct:指定百分比显示格式,例如 "%1.1f%%"

• startangle:指定饼图起始角度

示例:

plt.show()

饼图常用于展示各部分在整体中的比例关系。

三、图形结构函数

在 Matplotlib 中,可以通过多种方式创建图形对象与子图。

figure()

用于创建图形对象。

plt.figure(figsize=None, dpi=None)

参数说明:

• figsize:用于指定图形尺寸,单位为英寸

• dpi:图像分辨率

示例:

plt.show()

subplot()

用于创建子图。

plt.subplot(nrows, ncols, index)

参数说明:

• nrows:子图行数

• ncols :子图列数

• index:当前子图编号

示例:

plt.show()

subplots()

用于同时创建 Figure 与 Axes。

fig, ax = plt.subplots(nrows=1, ncols=1)

示例:

plt.show()

这种方式是 Matplotlib 官方推荐的绘图方式。

四、图形元素函数

绘制图形后,通常需要添加标题、标签、图例等元素。

title()

设置图标题。

plt.title(label, fontsize=None, loc=None)

参数说明:

• label:标题内容

• fontsize:指定字体大小

• loc:指定标题位置

xlabel()/ylabel()

设置坐标轴标签。

plt.ylabel(label)

legend()

显示图例。

plt.legend()

示例:

plt.show()

grid()

显示网格。

plt.grid(True)

网格可以帮助读者更容易估计数据位置。

tight_layout()

自动调整子图间距,避免标签或标题重叠。

plt.tight_layout()

五、图像输出函数

savefig()

用于将图形保存为文件。

)

参数说明:

• fname:文件名

• dpi:图像分辨率

• bbox_inches:指定是否自动裁剪空白区域

• transparent:指定背景是否透明

示例:

plt.show()

上述代码会先将图形保存为文件,再显示图形窗口。

Matplotlib 支持导出多种图像格式,例如 PNG、PDF、SVG 和 JPG。

show()

用于显示图形窗口。

plt.show()

在普通 Python 脚本中通常需要调用 show() 才能显示图形窗口。

在 Jupyter Notebook 中,图形通常会自动显示。

六、简单数据可视化示例

在数据分析项目中,Matplotlib 常用于展示数据趋势、分布以及变量关系。

例如:

plt.show()

运行结果将得到一个函数曲线图。

这种图形在以下场景中非常常见:

• 数学函数可视化

• 机器学习训练曲线

• 时间序列趋势分析

• 实验数据展示

七、Matplotlib 后端控制与全局配置

Matplotlib 的图形系统不仅涉及绘图函数,还依赖于运行环境配置,这些配置通常在程序开始阶段进行设置。

1、后端控制

matplotlib.use()

Matplotlib 的图形显示依赖于图形后端(backend)。后端负责图形渲染、窗口显示以及图像输出。

matplotlib.use(backend)

参数说明:

• backend:后端名称字符串,例如:

"Agg":不显示图形窗口,仅用于生成图像文件

示例:

import matplotlib.pyplot as plt

• Agg 后端通常用于:

• 服务器环境

• 批量生成图像

• 无图形界面的系统

需要注意的是,matplotlib.use() 必须在导入 pyplot 之前调用,否则设置不会生效。

2、全局配置

plt.rcParams

rcParams 是 Matplotlib 的全局配置参数系统。它本质上是一个字典对象,用于控制图形的默认行为。

plt.rcParams[key] = value

其中,常见的配置项名称 key 有:

plt.rcParams["axes.labelsize"] = 12    # 用于设置坐标轴标签字体大小

Matplotlib 的所有配置项都存储在 rcParams 字典中,可以通过以下方式查看:

plt.rcParams

如果希望查看某一个参数的当前值,可以使用:

plt.rcParams["figure.figsize"]

在 Matplotlib 中,默认字体通常不包含中文字符,因此绘制包含中文的图形时可能出现乱码。

解决方法是通过 rcParams 指定中文字体。

示例:

plt.rcParams["axes.unicode_minus"] = False

• font.sans-serif 用于指定无衬线字体列表。SimHei 是常见的中文字体(黑体)

• axes.unicode_minus 用于控制负号显示。如果设为 False,则使用普通字符 "-" 代替 Unicode 负号,以避免字体缺失导致的显示问题。

3、图形样式系统

plt.style.use()

除了通过 rcParams 设置单个参数外,Matplotlib 还提供了图形样式系统(style system),用于一次性应用整套图形风格。

plt.style.use(style_name)

参数说明:

• style_name 表示样式名称字符串,用于指定预设的图形风格。Matplotlib 内置了多种样式,例如:

"dark_background"

这些样式通常模仿常见统计软件或可视化工具的绘图风格。

示例:

plt.show()

运行后可以看到图形使用了类似 R 语言 ggplot2 的绘图风格。

plt.style.available

用于查看所有可用样式。

plt.style.available

不同版本的 Matplotlib 中,可用样式名称可能略有不同。

小结

Matplotlib 是 Python 中最基础的数据可视化库,提供了折线图、散点图、柱状图、直方图等常见图形绘制功能。通过 plot()、scatter()、bar()、hist() 等常用函数,并结合 title()、legend()、grid() 等图形元素设置,可以较方便地构建数据分析与机器学习中的可视化展示流程。

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
以牙还牙,中国稀土正式断供!2026年9月4日,路透社透露,在中国把RBA纳入反制清单后,不少中国稀土供应商叫停了对美发货

以牙还牙,中国稀土正式断供!2026年9月4日,路透社透露,在中国把RBA纳入反制清单后,不少中国稀土供应商叫停了对美发货

扶苏聊历史
2026-09-07 17:32:06
《队报》欧冠历史最佳阵容出炉:C罗落选引争议,梅西领衔群星闪耀

《队报》欧冠历史最佳阵容出炉:C罗落选引争议,梅西领衔群星闪耀

智道足球
2026-09-08 07:35:19
最高优惠1万元!特斯拉中国宣布本月Model 3和Y全系“降价”

最高优惠1万元!特斯拉中国宣布本月Model 3和Y全系“降价”

澎湃新闻
2026-09-07 11:00:27
相隔30年,中国士兵装备仍然追不上奥匈帝国士兵!

相隔30年,中国士兵装备仍然追不上奥匈帝国士兵!

弹痕驿站
2026-09-07 16:07:43
欧盟市场留给我们的窗口期只剩下16个月。

欧盟市场留给我们的窗口期只剩下16个月。

流苏晚晴
2026-09-02 19:04:44
中国一再退,一再忍让,最让人担心的是,中国从来没有灭亡日本的军事计划与准备,整个社会整个国家都是过度的善良和平。

中国一再退,一再忍让,最让人担心的是,中国从来没有灭亡日本的军事计划与准备,整个社会整个国家都是过度的善良和平。

回京历史梦
2026-09-07 17:47:01
扎心!以为省钱的外卖保温袋,正把甲醛一点一点喂给全家老小

扎心!以为省钱的外卖保温袋,正把甲醛一点一点喂给全家老小

解释
2026-09-07 19:05:06
比弗林蓬更惨!利物浦高薪巨星彻底失宠!惨遭新帅弃用

比弗林蓬更惨!利物浦高薪巨星彻底失宠!惨遭新帅弃用

澜归序
2026-09-08 09:41:01
几十个国产操作系统打不过Windows:操作系统越多,战斗力越弱

几十个国产操作系统打不过Windows:操作系统越多,战斗力越弱

王新喜
2026-09-07 13:49:07
世界上断送国家命运的六大决策:1、俄罗斯卖掉阿拉斯加,2、乌克兰主动放弃核武器,3、伊朗霍梅尼回国,推翻巴列维政权

世界上断送国家命运的六大决策:1、俄罗斯卖掉阿拉斯加,2、乌克兰主动放弃核武器,3、伊朗霍梅尼回国,推翻巴列维政权

扶苏聊历史
2026-09-02 18:25:39
英格兰公开赛,世界前五全败,罗伯逊们团灭,赵心童连续三站折戟

英格兰公开赛,世界前五全败,罗伯逊们团灭,赵心童连续三站折戟

天涯远行人
2026-09-08 08:50:23
范冰冰男友详细资料被扒,离过婚还有一个儿子,对范冰冰爱慕已久

范冰冰男友详细资料被扒,离过婚还有一个儿子,对范冰冰爱慕已久

八星人
2026-09-08 09:54:40
白眼狼啊!舅舅4万资助外甥上大学,毕业要每月500,该男子发帖直言不想给,评论区瞬间炸锅

白眼狼啊!舅舅4万资助外甥上大学,毕业要每月500,该男子发帖直言不想给,评论区瞬间炸锅

火山詩话
2026-09-06 13:26:46
武汉发布情况通报

武汉发布情况通报

政知新媒体
2026-09-07 23:17:53
被立案调查27天,郭德纲迎终极“噩耗”,处理通报公布,句句戳他心窝

被立案调查27天,郭德纲迎终极“噩耗”,处理通报公布,句句戳他心窝

叨唠
2026-09-07 23:16:08
伊朗博主当场开怼全网:中国人根本没意识到自己的体量有多吓人!一个省就顶得上一个国家,14亿人口的规模让全世界都看呆了

伊朗博主当场开怼全网:中国人根本没意识到自己的体量有多吓人!一个省就顶得上一个国家,14亿人口的规模让全世界都看呆了

z千年历史老号
2026-09-07 18:16:52
丑照疯传!在飞机上闹事的男子被开除

丑照疯传!在飞机上闹事的男子被开除

大洛杉矶LA
2026-09-07 06:27:02
甲醛超标!很多人爱囤家里,网友:以前不知道,还以为省钱了

甲醛超标!很多人爱囤家里,网友:以前不知道,还以为省钱了

第一财经资讯
2026-09-07 13:22:17
陈冲爆猛料!霍思燕深爱老公,牺牲自己当诱饵,只为帮杜江争取角色

陈冲爆猛料!霍思燕深爱老公,牺牲自己当诱饵,只为帮杜江争取角色

八星人
2026-09-08 09:50:10
麒麟9050 Pro归位,中国芯片重回牌桌

麒麟9050 Pro归位,中国芯片重回牌桌

华尔街见闻官方
2026-09-07 22:35:54
2026-09-08 12:32:50
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2145文章数 86关注度
往期回顾 全部

科技要闻

小米再次背水一战

头条要闻

新加坡舆论场出现歧视印度裔言论 李显龙、黄循财发声

头条要闻

新加坡舆论场出现歧视印度裔言论 李显龙、黄循财发声

体育要闻

郑钦文,奇迹只发生在相信奇迹的人身上

娱乐要闻

郭德纲乱改抗战歌曲被重罚!

财经要闻

全球黄金“回家”

汽车要闻

领克20 领克的纯电小钢炮这次更运动了

态度原创

游戏
艺术
亲子
公开课
军事航空

魔兽世界:时光服时光服怎么样了?金币价格稳定,团本才是关键

艺术要闻

90后高学历情侣,租350m²毛坯45天改完:比买房值

亲子要闻

手足口病进入高发期,这些症状家长别忽视

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

伊朗锡里克婚礼遭袭现场发现美武器残骸

无障碍浏览 进入关怀版