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

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.

相关推荐
热点推荐
444分被殡葬专业录取男生已入学,多名“00后”殡葬人发声:24小时待命,月薪过万很少

444分被殡葬专业录取男生已入学,多名“00后”殡葬人发声:24小时待命,月薪过万很少

上观新闻
2026-09-07 14:13:43
一觉醒来,中国斯诺克6胜2负!赵心童翻车,丁俊晖脱险,新人爆冷世界冠军!

一觉醒来,中国斯诺克6胜2负!赵心童翻车,丁俊晖脱险,新人爆冷世界冠军!

刘姚尧的文字城堡
2026-09-08 08:18:51
《交锋》:两位演员堪称败笔,换掉他们,这部剧近乎完美

《交锋》:两位演员堪称败笔,换掉他们,这部剧近乎完美

娱圈办事处
2026-09-07 15:08:53
特朗普发图宣布月球是美国的,加拿大总理硬核回怼

特朗普发图宣布月球是美国的,加拿大总理硬核回怼

热搜摘要官
2026-09-07 08:04:56
1999年,毛主席的女婿赴广州参加活动,不幸遭遇意外,令人深感惋惜

1999年,毛主席的女婿赴广州参加活动,不幸遭遇意外,令人深感惋惜

历史龙元阁
2026-09-07 17:55:09
态度变了?郑钦文逆转赢球后,美媒发文锐评,原来李娜真没说错

态度变了?郑钦文逆转赢球后,美媒发文锐评,原来李娜真没说错

体育小柚
2026-09-07 14:20:52
中方说到做到,宣布对美发起制裁!力度之大、范围之广从没见过

中方说到做到,宣布对美发起制裁!力度之大、范围之广从没见过

阿策聊实事
2026-09-07 12:20:13
水落石出!李月汝护照遗失原因查明,美国物流系统问题出在哪?

水落石出!李月汝护照遗失原因查明,美国物流系统问题出在哪?

仙味少女心
2026-09-07 03:26:03
定期存单到期,别傻傻当天就取!牢记“两要两不要”

定期存单到期,别傻傻当天就取!牢记“两要两不要”

花小猫的美食日常
2026-09-08 04:57:10
官宣!五大联赛新赛季首位下课主帅诞生,三连败垫底被解雇,压力直接给到兰帕德

官宣!五大联赛新赛季首位下课主帅诞生,三连败垫底被解雇,压力直接给到兰帕德

漫漫轻云r
2026-09-07 08:08:12
“这桃花眼,是天赐的面相!”女孩宗祠领奖照走红,专业让人绝望

“这桃花眼,是天赐的面相!”女孩宗祠领奖照走红,专业让人绝望

世界圈
2026-09-02 14:51:36
香港为什么不香了,2026年上半年内地客仍在增长,街头体感为何反而变了?

香港为什么不香了,2026年上半年内地客仍在增长,街头体感为何反而变了?

周哥一影视
2026-09-08 01:31:51
有一种降价叫“现金激励”,特斯拉中国宣布:9月30日前下单提车,Model 3减5000元,Model Y减10000元

有一种降价叫“现金激励”,特斯拉中国宣布:9月30日前下单提车,Model 3减5000元,Model Y减10000元

都市快报橙柿互动
2026-09-07 11:31:58
多地出手整治赵一鸣、好想来等头部零食品牌

多地出手整治赵一鸣、好想来等头部零食品牌

看看新闻Knews
2026-09-06 21:06:02
比井盖?韦世豪疑似地域攻击河南!全家遭河南球迷辱骂+死亡威胁

比井盖?韦世豪疑似地域攻击河南!全家遭河南球迷辱骂+死亡威胁

念洲
2026-09-07 07:01:20
申花解约米内罗!媒体人热议:高层雷霆之怒,花的冤枉钱太多了

申花解约米内罗!媒体人热议:高层雷霆之怒,花的冤枉钱太多了

奥拜尔
2026-09-07 11:10:43
特朗普暗示把新墨西哥州改为“新美国州”,州长讽刺:有美国之前就叫这名,整天浪费时间研究地图

特朗普暗示把新墨西哥州改为“新美国州”,州长讽刺:有美国之前就叫这名,整天浪费时间研究地图

第一财经资讯
2026-09-07 21:04:48
小米再次背水一战

小米再次背水一战

全天候科技
2026-09-08 00:47:41
第五次大放水,但别指望楼市暴涨

第五次大放水,但别指望楼市暴涨

大川东山再起
2026-09-07 10:42:11
姆巴佩否认更衣室矛盾,反驳穆帅言论:既要进球,又要夺冠!

姆巴佩否认更衣室矛盾,反驳穆帅言论:既要进球,又要夺冠!

福酱的小时光
2026-09-07 22:54:52
2026-09-08 09:11:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
2145文章数 86关注度
往期回顾 全部

科技要闻

小米再次背水一战

头条要闻

南阳"老头乐"退场 老人想不通:能产能卖为啥上路违法

头条要闻

南阳"老头乐"退场 老人想不通:能产能卖为啥上路违法

体育要闻

世界杯-中国女篮20分大胜意大利锁D组第二 韩旭19+10杨舒予15分

娱乐要闻

热搜第一,演员李沐宸致歉

财经要闻

全球黄金“回家”

汽车要闻

智能可变大空间SUV 小米澎程系列车型上市 20.99万起

态度原创

教育
艺术
手机
房产
公开课

教育要闻

教学诊疗:课堂秩序混乱这个问题咋解决?

艺术要闻

一幅分裂的古画:一边祝你升官,一边劝你放下欲望

手机要闻

雷军展示“折叠机的坟场 :干了8万次跌落 摔了1500多台工程机 花费几千万元

房产要闻

10万人吃瓜!三亚这个楼盘,法拍网上卖疯了!

公开课

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

无障碍浏览 进入关怀版