Matplotlib 零基础入门教程:从基础绘图到数据可视化实战

Matplotlib 零基础入门教程:从基础绘图到数据可视化实战

大家好!今天给大家带来 Python 数据可视化领域的核心库——Matplotlib 的零基础入门教程。无论你是数据分析新手、机器学习学习者,还是需要做报表展示的职场人,掌握 Matplotlib 都能让你的数据“说话”更直观。本文将从环境搭建开始,逐步讲解基础绘图语法、样式美化、多图布局,最后通过实战案例巩固知识点,全程附带可直接运行的代码,让你边学边练!

一、环境搭建:3分钟搞定Matplotlib安装

在开始之前,我们需要先完成 Matplotlib 的安装。Matplotlib 支持多种安装方式,最常用的是通过 pip 命令,适用于 Windows、Mac、Linux 全平台。

1.1 基础安装(推荐)

打开终端(Windows 按 Win+R 输入 cmd,Mac 按 Command+空格输入 terminal),输入以下命令:
在这里插入图片描述

如果你的环境中有多个 Python 版本,建议使用 pip3 确保安装到 Python3 环境:

在这里插入图片描述

1.2 验证安装是否成功

安装完成后,我们可以通过简单的代码验证是否安装成功。打开 Python 交互式环境(终端输入 python 或 python3),输入以下代码:

在这里插入图片描述

如果弹出一个包含折线图的窗口,则说明安装成功!

二、Matplotlib核心概念:搞懂这3个对象,绘图不迷路

在开始绘图之前,我们需要先理解 Matplotlib 的核心架构。Matplotlib 采用“分层架构”设计,最核心的3个对象是:

  • Figure(画布):相当于我们绘图的“画板”,是所有绘图元素的容器。一个 Figure 可以包含多个子图(Axes)。

  • Axes(子图):相当于画板上的“画纸”,是实际绘图的区域。每个 Axes 有自己的坐标轴(xaxis、yaxis)、标题、图例等。

  • Artist(绘图元素):相当于“画笔和颜料”,包括线条、文字、点、柱状图等所有可见的绘图元素。

简单总结:我们先创建 Figure 画布,再在画布上添加 Axes 子图,最后在子图上绘制各种 Artist 元素。

三、基础绘图实战:从折线图到柱状图

Matplotlib 支持多种图表类型,本节我们从最常用的折线图、柱状图、散点图入手,讲解基础绘图语法。

3.1 折线图(plot):展示数据趋势

折线图适用于展示数据随时间或连续变量的变化趋势。例如:展示一周内的气温变化、产品销量增长趋势等。

3.1.1 基础折线图

在这里插入图片描述

3.1.2 关键参数说明

  • color:线条颜色,可选值:‘red’、‘blue’、‘green’,或十六进制颜色码 ‘#FF0000’。

  • linewidth:线条宽度,数值越大线条越粗。

  • linestyle:线条样式,‘-’ 实线(默认)、‘–’ 虚线、‘:’ 点线、‘-.’ 点划线。

  • label:图例名称,需配合 ax.legend() 显示。

  • figsize:画布大小,影响图表清晰度。

3.2 柱状图(bar):对比离散数据

柱状图适用于对比多个离散类别数据的大小,例如:不同产品的销量、不同部门的业绩等。
在这里插入图片描述

3.3 散点图(scatter):展示变量相关性

散点图适用于展示两个变量之间的相关性,例如:身高与体重的关系、广告投入与销售额的关系等。
在这里插入图片描述

四、进阶技巧:图表美化与多图布局

掌握基础绘图后,我们可以通过美化样式和合理布局,让图表更专业、更易读。

4.1 图表样式美化

Matplotlib 提供了多种预设样式,也支持自定义样式。
在这里插入图片描述

4.2 多图布局:subplots 进阶

当需要同时展示多个图表时,可以使用 subplots 实现多图布局(如 2 行 2 列、1 行 2 列等)。
在这里插入图片描述

五、实战案例:电商用户消费数据可视化

本节我们通过一个真实场景的案例,综合运用前面所学的知识。假设我们有一份电商平台用户消费数据,需要分析用户消费金额分布、不同年龄段消费对比、消费金额与购买次数的相关性。

5.1 数据准备(模拟真实数据)
在这里插入图片描述
5.2 数据可视化分析
在这里插入图片描述
5.3 案例分析结论

  • 消费金额分布:大部分用户消费金额集中在 400-600 元之间,符合正态分布特征。

  • 年龄段对比:26-35 岁年龄段用户平均消费金额最高,是平台的核心消费群体。

  • 相关性:消费金额与购买次数呈正相关,购买次数越多,消费金额通常越高。

  • 性别差异:男女用户消费金额分布差异不大,女性用户消费中位数略高于男性。

六、常见问题与注意事项

6.1 中文显示乱码问题

Matplotlib 默认不支持中文字体,解决方法:在代码开头添加中文字体设置(前面案例已包含):
在这里插入图片描述
6.2 图表保存为空白

原因:plt.savefig() 放在了 plt.show() 之后。plt.show() 会清空画布,导致保存空白。

解决方法:将 plt.savefig() 放在 plt.show() 之前。

6.3 子图重叠问题

解决方法:使用 plt.tight_layout() 自动调整子图间距,或通过 fig.subplots_adjust() 手动调整。

七、总结与拓展

本文从环境搭建、核心概念、基础绘图、进阶技巧到实战案例,全面讲解了 Matplotlib 的零基础使用方法。通过本文的学习,你已经能够绘制常见的折线图、柱状图、散点图等,并能通过美化和布局让图表更专业。

拓展方向:

  • 学习 Matplotlib 的 3D 绘图功能(mpl_toolkits.mplot3d)。

  • 结合 Pandas 读取 Excel、CSV 等真实数据进行可视化。

  • 学习更高级的数据可视化库(如 Seaborn、Plotly),Seaborn 基于 Matplotlib 封装,语法更简洁;Plotly 支持交互式可视化。

最后,建议大家多动手练习,将所学知识应用到实际项目中,才能真正掌握 Matplotlib。如果本文对你有帮助,欢迎点赞、收藏、转发!有任何问题,欢迎在评论区留言讨论~

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐