第 45 课 · 阶段八 · 项目实战
数据可视化:matplotlib
数据不会说话,但图表会。这一课用 matplotlib 画出折线图、柱状图、饼图、散点图,并完成一张漂亮的组合图表。
🎯 学完本课你将掌握
- 安装并导入 matplotlib
- 绘制折线图、柱状图、饼图、散点图
- 设置标题、标签、图例
- 解决中文显示问题
一、安装
安装
1pip install matplotlib二、第一个折线图
折线图.py
1import matplotlib.pyplot as plt23x = [1, 2, 3, 4, 5]4y = [2, 4, 3, 8, 7]56plt.plot(x, y) # 画折线7plt.title("我的第一张图")8plt.xlabel("X轴")9plt.ylabel("Y轴")10plt.show()✅ 要点
plt.show() 会弹出图片窗口;保存为文件用 plt.savefig("图.png")。
三、解决中文乱码
中文字体.py
1import matplotlib.pyplot as plt23plt.rcParams["font.sans-serif"] = ["SimHei", "Microsoft YaHei"]4plt.rcParams["axes.unicode_minus"] = False # 负号正常显示四、柱状图
柱状图.py
1import matplotlib.pyplot as plt2plt.rcParams["font.sans-serif"] = ["SimHei"]34subjects = ["语文", "数学", "英语"]5scores = [92, 85, 95]6plt.bar(subjects, scores, color=["#00e5ff", "#a855f7", "#3b82f6"])7plt.title("三科成绩")8plt.show()五、饼图
饼图.py
1import matplotlib.pyplot as plt2plt.rcParams["font.sans-serif"] = ["SimHei"]34labels = ["游戏", "学习", "运动", "其他"]5sizes = [30, 40, 20, 10]6plt.pie(sizes, labels=labels, autopct="%1.1f%%", startangle=90)7plt.title("时间分配")8plt.show()六、散点图
散点图.py
1import matplotlib.pyplot as plt2import random34x = [random.randint(0, 100) for _ in range(50)]5y = [random.randint(0, 100) for _ in range(50)]6plt.scatter(x, y, c=y, cmap="viridis", s=40)7plt.colorbar()8plt.title("随机散点")9plt.show()七、一张图多个子图
子图.py
1import matplotlib.pyplot as plt2plt.rcParams["font.sans-serif"] = ["SimHei"]34fig, axes = plt.subplots(1, 2, figsize=(10, 4))5axes[0].plot([1, 2, 3], [3, 1, 4], marker="o")6axes[0].set_title("左:折线")7axes[1].bar(["A", "B"], [5, 3])8axes[1].set_title("右:柱状")9plt.tight_layout()10plt.show()八、常见错误与解决
常见错误与解决
| 错误现象 | 原因 / 解决方法 |
|---|---|
中文方块乱码 | 设置 rcParams 字体为 SimHei 或 Microsoft YaHei。 |
plt.show() 不弹窗 | 某些环境需先 plt.figure();脚本模式可改用 savefig 保存。 |
图例、标签重叠 | 用 plt.tight_layout() 自动调整布局。 |
✍️ 小练习
用 pandas 建一个 6 个月销售数据表,画出:折线图(趋势)、柱状图(对比)、饼图(占比);保存为 sales.png。
📌 本节小结
matplotlib 四板斧:plot 折线、bar 柱状、pie 饼图、scatter 散点;中文设字体、savefig 保存、subplots 组合。数据可视化让分析结果一目了然。