一文入门 matplotlib:从基础图表到数据可视化初体验
一、matplotlib 的 "Hello World"
使用 matplotlib 绘图,通常需要导入两个库:matplotlib.pyplot
(绘图核心)和numpy
(数据处理)。最简单的折线图代码如下:
python
import matplotlib.pyplot as plt
import numpy as np# 准备数据
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])# 绘制折线图并显示
plt.plot(x, y)
plt.show()
这几行代码完成了 "数据→绘图→显示" 的完整流程,是所有复杂图表的基础。
二、常见图表类型及适用场景
matplotlib 支持多种图表类型,不同图表适合展示不同数据:
折线图:用
plt.plot()
绘制,适合展示数据随时间或连续变量的变化趋势,比如温度变化、股票走势。柱状图 / 水平柱状图:分别用
plt.bar()
和plt.barh()
,适合对比不同类别的数据,比如各平台商品价格、不同班级的成绩分布。散点图:用
plt.scatter()
,用于观察两个变量的相关性,比如身高与体重的关系、广告投入与销量的关联。饼图:用
plt.pie()
,适合展示各部分占总体的比例,比如班级学生的兴趣分布、公司各部门的人员占比。直方图:用
plt.hist()
,用于展示数据的分布情况,比如学生成绩的分数段分布、零件尺寸的误差范围。
三、让图表更 "懂人话" 的技巧
绘制出图表后,添加必要的说明能让读者更快理解数据:
标签与标题:用
plt.xlabel()
、plt.ylabel()
标注坐标轴,plt.title()
添加标题,明确图表主题。图例:在
plot()
等函数中设置label
参数,再用plt.legend()
显示,区分多组数据。网格线:
plt.grid()
可以添加网格,让数据读取更方便,还能通过参数调整颜色和样式。中文显示:默认情况下 matplotlib 可能无法显示中文,只需一行代码设置字体:
python
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
四、从基础到进阶:子图与样式定制
当需要对比多组数据时,子图(subplot
)是实用工具,它能在一张图中展示多个图表:
python
# 1行2列布局,绘制两个子图
plt.subplot(1, 2, 1) # 定位第一个子图
plt.plot([1, 2, 3], [2, 4, 6])plt.subplot(1, 2, 2) # 定位第二个子图
plt.scatter([1, 2, 3], [2, 4, 6])plt.show()
此外,通过调整颜色(color
)、线条样式(linestyle
)、标记点(marker
)等参数,可以让图表更符合需求,比如用红色虚线突出重要数据趋势。
五、总结
matplotlib 的核心逻辑是 "先准备数据,再调用绘图函数,最后添加辅助信息并显示"。从简单的折线图到复杂的多子图布局,掌握这些基础用法后,就能应对大部分日常数据可视化需求。
后续可以尝试结合 pandas 处理真实数据集,或探索 seaborn 等基于 matplotlib 的高级库,让可视化效果更上一层楼。