Python数据可视化入门:Matplotlib超详细基础教程(含避坑指南)
1.先配置字体,避免乱码。2.先创建 Figure 和 Axes。3.在 Axes 上绘图。4.最后添加标签和标题。当你熟练掌握 Matplotlib 后,可以尝试学习 Seaborn(基于 Matplotlib 的高级封装,语法更简洁)或 Pyecharts(交互式图表),让数据可视化更上一层楼。
·
导语:
在数据分析的世界里,如果说 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(交互式图表),让数据可视化更上一层楼。
更多推荐
所有评论(0)