编写程序分别用条形图绘制出语文、数学、英语课程的最低分、最高分 以及平均分。最终效果图如图所示,要求图中显示图例、标题,图上显示的数字 可不显示,显示出来额外加 10 分,最终的图保存为条形.png。
时间: 2023-07-10 09:09:14 浏览: 82
以下是 Python 代码实现:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
subjects = ['语文', '数学', '英语']
data = [[65, 80, 75], [95, 90, 92], [85, 70, 78]]
colors = ['#FFC107', '#4CAF50', '#2196F3']
labels = ['最低分', '最高分', '平均分']
# 计算统计数据
stats = []
for i in range(3):
stats.append([np.min(data[i]), np.max(data[i]), np.mean(data[i])])
# 绘制条形图
fig, ax = plt.subplots(figsize=(8, 6))
bar_width = 0.2
opacity = 0.8
index = np.arange(3)
for i in range(3):
rects = ax.bar(index + i * bar_width, [x[i] + 10 for x in stats], bar_width,
alpha=opacity, color=colors[i], label=labels[i])
# 添加标签和标题
ax.set_xlabel('科目')
ax.set_ylabel('分数')
ax.set_title('学生成绩')
ax.set_xticks(index + bar_width)
ax.set_xticklabels(subjects)
ax.legend()
# 显示图形并保存
plt.tight_layout()
plt.savefig('条形.png')
plt.show()
```
运行以上代码即可生成统计图并保存为条形.png文件。
阅读全文