有一个Excel文档,记录许多参加某个活动学生的信息,第三行是学生的学院信息,要统计学院名称在表格里出现的频率,绘制条形统计图。
首先要读取信息
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('h.xlsx', usecols=[2])
为了方便后续,将矩阵转为一维数组
ar1 = df.values.flatten()#变一维数组
查找频率
value_counts = pd.Series(ar1).value_counts()
print(value_counts)
打印出来的效果如下
某学院 15
某学院 12
某学院 5
某学院 3
某学院 1
接下来是绘图,标记x轴,y轴和标题
plt.bar(value_counts.index, value_counts.values)
plt.xlabel('Elements')
plt.ylabel('Frequency')
plt.title('Element Frequency in ar1')
学院名称过长,需要将汉字竖着排放
plt.xticks(rotation=90)
#为了显示出汉字,用下面两行代码
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False
最后显示
plt.show()