导语:

在数据分析的世界里,如果说 Pandas 是“大脑”,负责处理逻辑,那么 Matplotlib 就是“眼睛”,负责展示结果。作为 Python 最基础、最强大的 2D 绘图库,Matplotlib 是每个数据人的必修课。本文将带你从零开始,掌握绘图核心逻辑,避开最常见的“中文乱码”坑。

一、 环境准备与“必做”的避坑配置

很多新手在安装好 Matplotlib 后,一画图发现中文全是方块(□□),这通常是因为默认字体不支持中文。

解决方法: 在代码开头加入以下配置,即可一劳永逸。

import matplotlib.pyplot as plt
import numpy as np

# --- 核心配置:解决中文显示问题 ---
plt.rcParams["font.sans-serif"] = ["SimHei"]  # 使用黑体显示中文
plt.rcParams["axes.unicode_minus"] = False    # 解决负号 "-" 显示异常的问题

# 生成测试数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 测试绘图
plt.plot(x, y)
plt.title("中文测试:Matplotlib 绘图")
plt.show()

二、 理解绘图的“两层架构”

1.Matplotlib 的逻辑其实很简单,可以类比为“画板”和“画纸”:

2.Figure (画板): 整个窗口,你可以把它想象成一张大的画板。
Axes (坐标轴/画纸): 画板上的区域,所有的线条、文字、图例都是画在 Axes 上的。
新手推荐使用“面向对象”模式,虽然代码稍多,但逻辑最清晰,方便以后做复杂的子图。

三、 万能绘图模板

这是你以后写代码的“骨架”,建议直接复制到你的代码片段中。

# 1. 创建画布和坐标轴
# figsize=(宽度, 高度) 单位是英寸
fig, ax = plt.subplots(figsize=(10, 6)) 

# 2. 准备数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 3. 在坐标轴(ax)上绘图
# color: 颜色, linewidth: 线宽, label: 图例标签
ax.plot(x, y, color='red', linewidth=2, label='正弦波')

# 4. 添加装饰 (美化图表)
ax.set_title("正弦波形图", fontsize=16)   # 标题
ax.set_xlabel("时间 (s)")                  # X轴标签
ax.set_ylabel("振幅")                      # Y轴标签
ax.legend()                                # 显示图例

# 5. 展示图表
plt.show()

四、 常用图表类型速查

除了最基本的折线图(ax.plot()),你还需要掌握以下几种:

图表类型 函数 适用场景
折线图 ax.plot() 展示趋势变化
散点图 ax.scatter() 展示数据分布、相关性
柱状图 ax.bar() 对比不同类别的数值
直方图 ax.hist() 展示数据频率分布
饼图 ax.pie() 展示占比关系
柱状图示例:
# 模拟数据
categories = ['A组', 'B组', 'C组', 'D组']
values = [23, 45, 56, 78]

fig, ax = plt.subplots()
# alpha 控制透明度
ax.bar(categories, values, color='skyblue', alpha=0.8) 
ax.set_title("各组数据对比")
plt.show()

五、 总结与进阶

Matplotlib 的核心在于 “先画什么,后画什么” 的逻辑。

1.先配置字体,避免乱码。
2.先创建 Figure 和 Axes。
3.在 Axes 上绘图。
4.最后添加标签和标题。
当你熟练掌握 Matplotlib 后,可以尝试学习 Seaborn(基于 Matplotlib 的高级封装,语法更简洁)或 Pyecharts(交互式图表),让数据可视化更上一层楼。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐