生医18级共有60人,某门课程的期末考试成绩中:优秀3人,良好18人,中等20人,及格12人,不及格7人;生医19级共有59人,该课程的考试成绩分布为:优秀4人,良好20人,中等21人,及格10人,不及格4人。 根据以上数据,利用Python编写程序: (1)分别绘制生医18级和生医19级该课程成绩分布百分比的饼图。 (2)两个年级的成绩分布百分比对比直方图。 要求: (1)要对程序进行注释,注意注释规范; (2)注意语句规范; (3)绘制的图形要有图题和标签。
时间: 2024-02-20 17:58:22 浏览: 52
好的,我会根据你的要求回答问题,并编写程序。以下是程序和注释:
```python
import matplotlib.pyplot as plt # 导入绘图库
# 定义函数,用于绘制饼图
def draw_pie_chart(labels, sizes, title):
# 设置饼图的颜色
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'red']
# 绘制饼图
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)
plt.axis('equal') # 设置坐标轴比例相等
plt.title(title) # 设置图题
plt.show() # 显示图形
# 定义函数,用于绘制直方图
def draw_histogram(data1, data2, labels, title):
# 设置直方图的颜色
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'red']
# 绘制直方图
plt.hist([data1, data2], color=colors, label=labels)
plt.legend()
plt.title(title) # 设置图题
plt.show() # 显示图形
# 生医18级该课程成绩分布数据
labels_18 = ['优秀', '良好', '中等', '及格', '不及格']
sizes_18 = [3, 18, 20, 12, 7]
title_18 = '生医18级该课程成绩分布百分比饼图'
# 生医19级该课程成绩分布数据
labels_19 = ['优秀', '良好', '中等', '及格', '不及格']
sizes_19 = [4, 20, 21, 10, 4]
title_19 = '生医19级该课程成绩分布百分比饼图'
# 绘制生医18级该课程成绩分布百分比饼图
draw_pie_chart(labels_18, sizes_18, title_18)
# 绘制生医19级该课程成绩分布百分比饼图
draw_pie_chart(labels_19, sizes_19, title_19)
# 绘制两个年级成绩分布百分比对比直方图
labels = ['生医18级', '生医19级']
title = '两个年级该课程成绩分布百分比对比直方图'
draw_histogram(sizes_18, sizes_19, labels, title)
```
程序运行后,会依次绘制生医18级和生医19级该课程成绩分布百分比的饼图,以及两个年级的成绩分布百分比对比直方图。图形会显示在窗口中,你可以通过窗口上的工具栏进行缩放、保存等操作。
阅读全文