读取表格文件绘制直方图

Author : zbzhen,        Modified : Tue Feb 21 10:54:02 2023

1. 案例

Python代码为:

import pandas as pd
import matplotlib.pyplot as plt
from pylab import mpl
mpl.style.use('classic')
mpl.rcParams['font.sans-serif'] = ['SimHei']

filename = u'成绩数据表.xlsx'
sheetname = u'15班'
item = u'数学成绩'
bins = [0,50,60,70,80,90,101]
# bins = [0,50,60,70,80,90,95,100]

df = pd.read_excel(filename, sheet_name=sheetname)
datalist = df[item]
cats = pd.cut(datalist, bins, right=False)
vc = pd.value_counts(cats).sort_index()

average = round(datalist.sum()/vc.sum(), 2)
plt.title(u"(Average score:"+str(average)+ u", Examinees:"+str(vc.sum()) +u")", fontsize=20)
xt = range(len(bins)+1,2*len(bins))

rects = plt.bar(xt, vc, width=1, align="center",color="b")

for i in range(len(bins)-1):
    h = vc.values[i]
    x = xt[i]
    if h != 0:
        plt.text(x, h, str(int(h)), ha="center", va="bottom", fontsize=20)

plt.xticks(xt, vc.index, fontsize= 100//len(bins))
plt.yticks(fontsize=20)
plt.tight_layout()
plt.savefig(sheetname+item + u".png")
plt.show()

表格主要信息

序号 性别 数学成绩
1 78
2  
3 65
4 64
5  
6 98
7 83