在数据分析和可视化中,常用的一种图形类型是柱状图。柱状图能够清晰地展示不同分类变量的数值,并支持多组数据进行对比。本篇文章将介绍如何使用Python绘制双柱状图。
准备工作
在开始绘制柱状图之前,需要先安装matplotlib和pandas这两个Python库。可以通过pip安装:
pip install matplotlib
pip install pandas
导入所需库
import pandas as pd import matplotlib.pyplot as plt
读取并处理数据
# 读取Excel文件 df = pd.read_excel(r'C:UsersAdminDesktop数据核对新建 XLSX 工作表.xlsx', sheet_name='Sheet3') # 设置柱状图的宽度 bar_width = 0.35 # 设置x轴的位置 x = df.index
首先使用Pandas读取Excel文件,然后根据实际情况设置柱状图的宽度和x轴位置。这里我们使用DataFrame的索引作为x轴。
绘制柱状图
# 绘制柱状图 fig, ax = plt.subplots() rects1 = ax.bar(x - bar_width/2, df['销售数量'], bar_width, label='销售数量') rects2 = ax.bar(x + bar_width/2, df['销售数量2'], bar_width, label='销售数量2')
使用matplotlib绘制柱状图,其中subplots()
方法会返回一个Figure对象和一个Axes对象。然后使用bar()
方法绘制两组柱状图,并设置标签。
添加标签和标题
# 添加标签和标题 ax.set_xlabel('店铺名称') ax.set_ylabel('销售数量') ax.set_title('Double Bar Chart') ax.set_xticks(x) ax.set_xticklabels(df['店铺名称']) ax.legend()
添加数据标签
# 添加数据标签 for rect in rects1: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3), # 3 points vertical offset textcoords="offset points", ha='center', va='bottom') for rect in rects2: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height/2), xytext=(0, 3), # 3 points vertical offset 服务器托管网 textcoords="offset points", ha='center', va='top')
对于每个柱状图,使用annotate()
方法添加数据标签。
显示图形
# 显示图形 plt.show()
最后使用show()
方法显示图形。
效果图展示
完整代码
impor服务器托管网t pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['SimHei'] # 指定中文字体为黑体 # 读取Excel文件 df = pd.read_excel(r'C:UsersAdminDesktop数据核对新建 XLSX 工作表.xlsx', sheet_name='Sheet3') # 设置柱状图的宽度 bar_width = 0.35 # 设置x轴的位置 x = df.index # 绘制柱状图 fig, ax = plt.subplots() rects1 = ax.bar(x - bar_width/2, df['销售数量'], bar_width, label='销售数量') rects2 = ax.bar(x + bar_width/2, df['销售数量2'], bar_width, label='销售数量2') # 添加标签和标题 ax.set_xlabel('店铺名称') ax.set_ylabel('销售数量') ax.set_title('Double Bar Chart') ax.set_xticks(x) ax.set_xticklabels(df['店铺名称']) ax.legend() # 添加数据标签 for rect in rects1: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height), xytext=(0, 3), # 3 points vertical offset textcoords="offset points", ha='center', va='bottom') for rect in rects2: height = rect.get_height() ax.annotate('{}'.format(height), xy=(rect.get_x() + rect.get_width() / 2, height/2), xytext=(0, 3), # 3 points vertical offset textcoords="offset points", ha='center', va='top') # 显示图形 plt.show()
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: [ARM 汇编]高级部分—性能优化与调试—3.4.3 使用模拟器进行调试与测试
在ARM汇编程序开发过程中,使用模拟器(emulator)进行调试和测试是一种非常有效的方法。模拟器可以在不同的处理器上测试代码,帮助我们发现潜在的问题,并提供丰富的调试功能。本节将介绍如何使用QEMU(一个流行的开源模拟器)进行ARM汇编程序的调试和测试。 …