Python数据可视化入门:用Matplotlib绘制第一张图表
一、核心操作流程与基础准备
在 Python 中使用 Matplotlib 绘图并不复杂,整个工作流程可以拆解为五个清晰的阶段:安装与引入模块、准备二维数据、构建画布与坐标系、绘制图形与添加修饰、最终渲染或导出文件。
在开始写代码前,首先需要在你的 Python 环境中安装 Matplotlib。打开终端或命令提示符,执行以下安装命令:
pip install matplotlib
安装完成后,在 Python 脚本或 Jupyter Notebook 中,通常约定俗成将核心子模块 matplotlib.pyplot 简写导入为 plt:
import matplotlib.pyplot as plt
二、理解 Matplotlib 核心架构:Figure 与 Axes
初学者使用 Matplotlib 遇到的第一个认知障碍,通常是混淆了“画布”与“子图”。Matplotlib 提供了两种绘图接口风格:
- pyplot 状态机风格:直接调用
plt.plot()、plt.title()。虽然快捷,但在处理多图或复杂控制时代码容易混乱。 - 面向对象风格(推荐):显式通过
fig, ax = plt.subplots()创建对象。其中fig(Figure)代表整个图像窗口或物理页面,而ax(Axes)才是真正包含坐标轴、刻度、数据线和图例的绘图区域。
三、完整实战:绘制第一张气温走势折线图
下面我们以一个生活常见的例子——“记录一周气温走势”为具体场景,写出标准的 Python 绘图代码。每个步骤都配有详尽说明,读者可以直接复制运行。
import matplotlib.pyplot as plt
# 1. 设置中文字体与负号正常显示(关键避坑)
plt.rcParams['font.sans-serif'] = ['PingFang SC', 'Microsoft YaHei', 'SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 2. 准备数据
days = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
temperatures = [15, 17, 14, 18, 21, 19, 22]
# 3. 创建画布(Figure)和坐标系(Axes)
fig, ax = plt.subplots(figsize=(8, 4.5), dpi=100)
# 4. 在坐标系上绘制折线图,设置线宽、颜色与数据点标记
ax.plot(days, temperatures, marker='o', color='#17324D', linewidth=2, label='日最高气温')
# 5. 添加标题、坐标轴说明
ax.set_title('城市一周最高气温走势', fontsize=14, pad=12)
ax.set_xlabel('星期', fontsize=11)
ax.set_ylabel('气温 (°C)', fontsize=11)
# 6. 开启网格辅助线并显示图例
ax.grid(True, linestyle='--', alpha=0.5)
ax.legend(loc='upper left')
# 7. 先保存图片,再调用 show 渲染
fig.savefig('temperature_trend.png', dpi=300, bbox_inches='tight')
plt.show()
为了让大家直观理解每一行代码与最终图表构件的对应关系,我们来看下面的映射关系:
四、初学者最常遇到的两大约束与避坑方案
原因分析:Matplotlib 默认内置字体为 DejaVu Sans,该字体库并不包含中文字形,因此中文会回退显示为一个个空心小方框。
解决办法:在脚本最开头通过 plt.rcParams 指定系统包含的中文字体列表。例如 macOS 上的 'PingFang SC'、Windows 上的 'Microsoft YaHei' 或 'SimHei'。同时设置 axes.unicode_minus = False,防止负号“-”被误识别为乱码方块。
原因分析:很多新手习惯将 plt.show() 写在 plt.savefig() 之前。在 Matplotlib 的工作机制中,plt.show() 执行完屏幕渲染后,会自动释放并清空当前画布内存。因此紧接着调用的 savefig 导出的其实是一张刚被重置的空白画布。
解决办法:永远将 fig.savefig(...) 置于 plt.show() 之前;或者在面向对象模式下,直接调用已经实例化的 fig.savefig(...)。
五、核心要点总结与速查清单
通过本文的学习,你已经掌握了使用 Matplotlib 绘制第一张折线图的标准姿势。在日常数据探索与科学计算中,牢记以下三项决策与检查标准:
掌握了折线图的绘制逻辑后,后续学习柱状图(ax.bar)、散点图(ax.scatter)或直方图(ax.hist)时,除了图形绘制方法不同,整体的画布构建、坐标系配置与保存逻辑均完全相通。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













