生医18级共有60人,某门课程的期末考试成绩中:优秀3人,良好18人,中等20人,及格12人,不及格7人;生医19级共有59人,该课程的考试成绩分布为:优秀4人,良好20人,中等21人,及格10人,不及格4人。 根据以上数据,利用Python编写程序: (1)分别绘制生医18级和生医19级该课程成绩分布百分比的饼图。 (2)两个年级的成绩分布百分比对比直方图。 要求: (1)要对程序进行注释,注意注释规范; (2)注意语句规范; (3)绘制的图形要有图题和标签。
时间: 2023-12-02 12:03:07 浏览: 66
10级生医课程设计讲稿.pptx
以下是利用Python编写的程序,实现了上述要求:
```
import matplotlib.pyplot as plt
# 生医18级成绩分布
labels18 = ['优秀', '良好', '中等', '及格', '不及格']
sizes18 = [3, 18, 20, 12, 7]
# 生医19级成绩分布
labels19 = ['优秀', '良好', '中等', '及格', '不及格']
sizes19 = [4, 20, 21, 10, 4]
# 绘制生医18级成绩分布饼图
plt.figure(figsize=(6, 6))
plt.pie(sizes18, labels=labels18, autopct='%1.1f%%')
plt.title('生医18级该课程成绩分布百分比')
plt.show()
# 绘制生医19级成绩分布饼图
plt.figure(figsize=(6, 6))
plt.pie(sizes19, labels=labels19, autopct='%1.1f%%')
plt.title('生医19级该课程成绩分布百分比')
plt.show()
# 绘制两个年级的成绩分布百分比对比直方图
x = ['18级优秀', '18级良好', '18级中等', '18级及格', '18级不及格', '19级优秀', '19级良好', '19级中等', '19级及格', '19级不及格']
y = sizes18 + sizes19
plt.figure(figsize=(10, 6))
plt.bar(x, y)
plt.title('两个年级该课程成绩分布百分比对比')
plt.xlabel('成绩分布')
plt.ylabel('人数')
plt.show()
```
程序注释如下:
1. 导入 matplotlib.pyplot 库,用于绘制图形。
2. 定义生医18级成绩分布饼图的标签和比例。
3. 定义生医19级成绩分布饼图的标签和比例。
4. 绘制生医18级成绩分布饼图,设置图形大小,使用 plt.pie() 函数绘制饼图,设置标签和自动计算百分比,并设置图形标题,最后展示图形。
5. 绘制生医19级成绩分布饼图,与上一步类似。
6. 定义两个年级的成绩分布对比直方图的 x 和 y 轴数据。
7. 绘制两个年级的成绩分布对比直方图,设置图形大小,使用 plt.bar() 函数绘制直方图,设置标题、标签和坐标轴,最后展示图形。
阅读全文