import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('mapdata.xlsx') # 导入Excel中的数据
plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置字体为黑体
x = df['工单归属'] # 设置X坐标轴
y1 = df['工单量'] # y主轴数据
y2 = df['工单及时率'] # y次坐标轴数据
plt.title('周工单量&工单及时率') # 设置标题
# 设置柱形图
plt.bar(x,y1,label='工单量',color='gold',width=0.4)
plt.ylim(0,600) # 设置坐标轴范围
for a,b in zip(x,y1):
plt.text(a,b+0.1,'%d'%b,ha='center',va='bottom')# 在x,y1+0.1的位置上添加数据标签
plt.legend(loc=1) # 显示图例 loc=1为右上角
# 次坐标轴 折线图
plt.twinx()
plt.plot(x,y2,label='工单及时率',color='darkolivegreen')
plt.ylim(0,1.2) #设置坐标轴的范围
for a,b in zip(x,y2):
plt.text(a,b+0.01,'%1.1f%%'%b,ha='center',va='bottom') # 设置数据标签为1位小数的百分比
plt.legend(loc=2)# 显示图例 在左上角
plt.show()