读取营业额数据.xls文件的信息,在同一个图中绘制各员工在不同柜台业绩平均值的柱状图,添加图例。输出结果如下图所示。
Python 数据分析测试1 之 求平均值 及 柱状图显示
https://blog.csdn.net/leader_ww/article/details/107622894
有测试文本数据没,
另外,这个可能直接用excel来生成柱形图就好了
这个需要用到2个方面的知识
大致是用pandas解析excel文件,再按人和柜台类型统计分析输出柱状图。
不过不知道你所谓的平均值是什么概念?如果是在该柜台平均值,则把.sum()
改为.mean()
即可。
下面是员工不同柜台业绩总值的分布处理
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
datas=pd.read_excel("test1.xlsx")
names=pd.read_excel("names.xlsx")
plt.rcParams['font.sans-serif']=['SimHei'] # 处理中文问题
mpl.rcParams["axes.unicode_minus"]=False
#数据处理
IDList=list(names['工号']) # 获得人员工号列表
GTList=list(set(datas['柜台']))
dataList={}
for i in GTList: # 初始化分柜台列表数据列表
dataList[i]=[]
for i in IDList : # 按人员分类统计处理
for j in GTList :
dataList[j].append(datas[ (datas["工号"] == i) & (datas["柜台"] == j) ]['交易额'].sum()) # 处理为总值
#dataList[j].append(datas[ (datas["工号"] == i) & (datas["柜台"] == j) ]['交易额'].mean()) # 处理为平均值
xlist =[ (1+4*x) for x in range(len(IDList))]
xLabel=list(names['姓名'])
bar_width=2.0/len(GTList)
xLen=len(GTList)
for i in range(xLen):
plt.bar([x+bar_width*i for x in xlist],dataList[GTList[i]],bar_width,align="center",label=GTList[i],alpha=0.5) # 颜色随机
for i in range(len(xlist )):
plt.xticks([x + bar_width*(xLen-1)/2 for x in xlist ],xLabel)
plt.xlabel("员工不同柜台业绩总值分布")
plt.legend()