成绩分析及其可视化实例

综合实例1:成绩分析及可视化实例 【功能要求】某班有30名学生的3门课程成绩,请统计每个学生课程的总分、平均分,每门课程的最高分、最低分,并绘制图形,统计成绩分布。 【教学目标】强化numpy和matplotlib的应用能力,numpy读取csv。 【参考代码】 #成绩分析及可视化实例 import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams['font.family'] = 'SimHei' stuScore = np.loadtxt('student_score.csv',delimiter = ',')#读入成绩文件,返回数组 sumEach = np.sum(stuScore[:,1:],axis = 1)#返回每个学生3门课程总分 avgEach = np.average(stuScore[:,1:],axis = 0)#返回每个学生每门课程平均分 #返回最高分和最低分 maxMath = np.max(stuScore[:,1]) maxEng = np.max(stuScore[:,2]) maxPython = np.max(stuScore[:,3]) minMath = np.min(stuScore[:,1]) minEng = np.min(stuScore[:,2]) minPython = np.min(stuScore[:,3])

print("个人总分情况是:") print(sumEach) print("个人平均分情况是:") print(avgEach) print("班级每门课程最高分:") print(maxMath,maxEng,maxPython) print("班级每门课程最低分:") print(minMath,minEng,minPython) #取出各科成绩 mathScore = stuScore[:,1]
engScore = stuScore[:,2] pythonScore = stuScore[:,3] #绘制高数直方图 plt.suptitle("成绩分布直方图") plt.subplot(3,1,1) plt.hist(mathScore,bins=10,range=(0,100),color='red')#0-100分,分成10段 plt.xlabel("高数成绩分数段")#设置x轴标签 plt.ylabel("人数")#设置y轴标签 plt.xlim(0,100)#设置x轴区间 plt.xticks([0,10,20,30,40,50,60,70,80,90,100])#设置x轴刻度 plt.yticks([0,10,20,30,40,50,60,70,80,90,100]) #设置y轴刻度 plt.grid() #绘制英语直方图 plt.subplot(3,1,2) plt.hist(engScore,bins=10,range=(0,100),color='blue')#0-100分,分成10段 plt.xlabel("英语成绩分数段")#设置x轴标签 plt.ylabel("人数")#设置y轴标签 plt.xlim(0,10)#设置x轴区间 plt.xticks([0,10,20,30,40,50,60,70,80,90,100])#设置x轴刻度 plt.yticks([0,10,20,30,40,50,60,70,80,90,100]) #设置y轴刻度 plt.grid() #绘制python直方图 plt.suptitle("成绩分布直方图") plt.subplot(3,1,3) plt.hist(pythonScore,bins=10,range=(0,100),color='green')#0-100分,分成10段 plt.xlabel("Python成绩分数段")#设置x轴标签 plt.ylabel("人数")#设置y轴标签 plt.xlim(0,100)#设置x轴区间 plt.xticks([0,10,20,30,40,50,60,70,80,90,100])#设置x轴刻度 plt.yticks([0,10,20,30,40,50,60,70,80,90,100]) #设置y轴刻度 plt.grid() plt.show()

注:至少完成一功能def的封装;至少增加一种数据可视化的图表进行实践。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^