# === 第12课:matplotlib 数据可视化 ===
import matplotlib.pyplot as plt
# 让图表显示中文(否则中文会显示为方块)
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 1. 折线图
print("--- 折线图 ---")
months = ["1月", "2月", "3月", "4月", "5月", "6月"]
sales = [120, 150, 180, 200, 170, 220]
plt.figure()
plt.plot(months, sales, marker="o", color="blue")
plt.title("上半年销售趋势")
plt.xlabel("月份")
plt.ylabel("销售额(万元)")
plt.grid(True)
plt.savefig(r"D:\python\line_chart.png")
plt.close()
print("折线图已保存")
# 2. 柱状图
print("--- 柱状图 ---")
names = ["张三", "李四", "王五", "赵六"]
scores = [85, 92, 76, 88]
plt.figure()
plt.bar(names, scores, color=["#4CAF50", "#2196F3", "#FF9800", "#E91E63"])
plt.title("语文成绩对比")
plt.xlabel("姓名")
plt.ylabel("成绩")
plt.ylim(0, 100) # y轴范围
for i, score in enumerate(scores):
plt.text(i, score + 1, str(score), ha="center") # 在柱子上方显示数值
plt.savefig(r"D:\python\bar_chart.png")
plt.close()
print("柱状图已保存")
# 3. 饼图
print("--- 饼图 ---")
items = ["餐饮", "交通", "娱乐", "购物", "其他"]
expenses = [3000, 800, 1200, 2500, 500]
plt.figure()
plt.pie(expenses, labels=items, autopct="%1.1f%%", startangle=90)
plt.title("月度支出占比")
plt.savefig(r"D:\python\pie_chart.png")
plt.close()
print("饼图已保存")
# 4. 多子图(一张图里放多个图表)
print("--- 多子图 ---")
x = [1, 2, 3, 4, 5]
y1 = [10, 20, 15, 30, 25]
y2 = [5, 15, 10, 25, 20]
fig, axes = plt.subplots(1, 2, figsize=(10, 4)) # 1行2列
# 左图:折线
axes[0].plot(x, y1, marker="o", color="green")
axes[0].set_title("数据A趋势")
axes[0].set_xlabel("序号")
axes[0].set_ylabel("数值")
axes[0].grid(True)
# 右图:柱状
axes[1].bar(x, y2, color="orange")
axes[1].set_title("数据B对比")
axes[1].set_xlabel("序号")
axes[1].set_ylabel("数值")
fig.suptitle("多子图示例")
plt.tight_layout()
plt.savefig(r"D:\python\multi_chart.png")
plt.close()
print("多子图已保存")
print()
print("全部图表生成完毕!请到 D:\\python 查看图片文件")
这一课的核心操作:
| 操作 | 代码 |
|---|---|
| 折线图 | plt.plot(x, y) |
| 柱状图 | plt.bar(x, y) |
| 饼图 | plt.pie(data) |
| 标题 | plt.title("标题") |
| 坐标轴标签 | plt.xlabel() / plt.ylabel() |
| 保存图片 | plt.savefig("路径") |
| 关闭图表 | plt.close() |
未经允许不得转载:百花谷博客 » 跟着AI学Python 第12课:matplotlib 数据可视化

百花谷博客
微信关注,获取更多