📊 Matplotlib 可视化练习题

基于Python代码的5个交互式图表展示

练习1:正弦余弦曲线图

#1

题目: 完善正弦余弦曲线图的刻度与网格设置

要求: 生成x范围为[-π, π]的正弦、余弦数据,设置完整的网格线和自定义刻度

# 练习题1:正弦余弦曲线图
x = np.linspace(-np.pi, np.pi, 1000)
y_sin = np.sin(x)
y_cos = np.cos(x)

plt.plot(x, y_sin, label=r'$y = \sin(x)$', color='blue', linewidth=2)
plt.plot(x, y_cos, label=r'$y = \cos(x)$', color='red', linewidth=2)
plt.grid(True, color='gray', linestyle='--', linewidth=1, alpha=0.7)

练习2:电影票房柱状图

#2

题目: 电影票房柱状图添加参考线和注释

要求: 展示2019年电影票房数据,添加平均票房参考线和冠军注释

# 练习题2:电影票房柱状图
movies = ["哪吒之魔童降世", "流浪地球", "复仇者联盟4", ...]
box_office = [50.35, 46.87, 42.50, ...]
avg_bo = np.mean(box_office)

plt.barh(y_pos, sorted_bo, height=bar_width, color='skyblue', alpha=0.8)
plt.axvline(x=avg_bo, color='orange', linestyle=':--', linewidth=2)

练习3:果酱面包配料比例饼图

#3

题目: 果酱面包配料比例饼图(含表格与自定义图例)

要求: 展示配料比例,添加爆炸效果和重量表格

90°
# 练习题3:果酱面包配料比例饼图
ingredients = ['面粉', '全麦粉', '酵母', '苹果酱', '鸡蛋', '黄油', '白糖', '盐']
weights = [250, 150, 4, 250, 50, 30, 4, 20]
proportions = [33.0, 19.8, 0.5, 33.0, 6.6, 4.0, 2.6, 0.5]

explode = [0.05, 0.02, 0, 0.05, 0.01, 0, 0, 0]
plt.pie(proportions, explode=explode, autopct='%3.1f%%', startangle=90)

练习4:三角函数图突出显示正负区域

#4

题目: 三角函数图突出显示正负区域

要求: 突出显示sin(x)和cos(x)均为正的区域[0, π/2]

0.3
# 练习题4:三角函数图突出显示正负区域
plt.axvspan(xmin=0, xmax=np.pi/2, color='lightgreen', alpha=0.3)
plt.text(np.pi/4, 0.5, r'$\sin(x) > 0$ 且 $\cos(x) > 0$', 
         ha='center', va='center', fontsize=10)

练习5:班级英语成绩评估图

#5

题目: 班级英语成绩评估图(含平均分注释)

要求: 对比各班男女生英语成绩,添加全校平均分参考线

# 练习题5:班级英语成绩评估图
classes = ['1班', '2班', '3班', '4班', '5班', '6班']
male_scores = [86, 88, 85, 90, 87, 89]
female_scores = [88, 90, 87, 92, 89, 91]

plt.bar(x_pos - bar_width/2, male_scores, width=bar_width, label='男生')
plt.bar(x_pos + bar_width/2, female_scores, width=bar_width, label='女生')
plt.axhline(y=school_avg, color='orange', linestyle='--', linewidth=2)