标题 matplotlib 柱形图添加数据标签和双柱形图
双柱形图和添加数据标签
def drawHistogram(list1,list2,title):
matplotlib.rc("font", family='MicroSoft YaHei')
print(Emp_data)
length = len(list1)
x = np.arange(length) # 横坐标范围
print(x)
listDate = ['{}月'.format(i) for i in range(1,13)]
print(listDate)
plt.figure()
total_width, n = 0.8, 2 # 柱状图总宽度,有几组数据
width = total_width / n # 单个柱状图的宽度
x1 = x - width / 2 # 第一组数据柱状图横坐标起始位置
x2 = x1 + width # 第二组数据柱状图横坐标起始位置
plt.title(title) # 柱状图标题
plt.bar(x1, list1, width=width, label="2018年",color='blue')
plt.bar(x2, list2, width=width, label="2019年",color='darkorange')
plt.xticks(x, listDate) # 用星期几替换横坐标x的值
# --为每个条形图添加数值标签-
for x1, y1 in enumerate(list1):
plt.text(x1-0.15, y1+1 , y1, ha='center')
for x2, y2 in enumerate(list2):
plt.text(x2+0.15, y2+0.8, y2, ha='center')
plt.legend() # 给出图例
plt.show()
if __name__ == '__main__':
#--获取数据--
Emp_data = pd.read_excel(r"D:\Apps\WXWork\msg\WXWork\1688853885073396\Cache\File\2021-10\空气质量对比.xlsx")
list1 = list(Emp_data['PM25_2018年'])
list2 = list(Emp_data['PM25_2019年'])
list3 = list(Emp_data['SO2_2018年'])
list4 = list(Emp_data['SO2_2019年'])
list5 = list(Emp_data['PM10_2018年'])
list6 = list(Emp_data['PM10_2019年'])
list7 = list(Emp_data['优良天数_2018年'])
list8 = list(Emp_data['优良天数_2019年'])
# --作图--
drawHistogram(list1,list2,'PM25对比图')
drawHistogram(list3, list4,'SO2对比图')
drawHistogram(list5, list6, 'PM10对比图')
drawHistogram(list7, list8, '优良天数对比图')