1. 题目
给定一组学生成绩:[85, 92, 78, 65, 95, 88, 72, 60, 98, 45, 100, 46, 23, 88, 67, 89, 67, 88, 99],现在评分等级为优(90-100)、良(70-89)、及格(60-69)、不及格(0-59),请根据上述信息画出学生成绩等级分布图。
2. 安装
通过命令安装:
pip install matplotlib
3. 代码实现
import matplotlib.pyplot as plt
# 设置全局字体为支持中文的字体,例如SimHei(黑体)
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
# 假设这是学生语文成绩数据
chinese_scores = [85, 92, 78, 65, 95, 88, 72, 60, 98, 45,100,46,23,88,67,89,67,88,99]
# 分数段定义
excellent = [score for score in chinese_scores if 90 <= score <= 100]
good = [score for score in chinese_scores if 70 <= score <= 89]
passing = [score for score in chinese_scores if 60 <= score <= 69]
fail = [score for score in chinese_scores if score < 60]
# 分组名称
labels = ['优秀', '良好', '及格', '不及格']
# 分组数据
data = [len(excellent), len(good), len(passing), len(fail)]
# 绘制饼图
plt.pie(data, labels=labels, autopct='%1.1f%%', startangle=140, colors=['green', 'yellow', 'orange', 'red'])
plt.axis('equal') # 保持图形为正圆形
plt.title('学生语文成绩分布图')
# 显示中文标签在饼图的中心
plt.text(0, 0, '学生\n语文成绩', ha='center', va='center', fontproperties='SimHei', fontsize=12, weight='bold', color='black')
plt.show()
4. 运行效果
5. 参考
https://matplotlib.org/stable/users/index |