Python利用pandas和matplotlib实现绘制双柱状图

 更新时间:2023年11月07日 08:50:43   作者:qwerrt9  
在数据分析和可视化中,常用的一种图形类型是柱状图,柱状图能够清晰地展示不同分类变量的数值,并支持多组数据进行对比,本篇文章将介绍python如何使用pandas和matplotlib绘制双柱状图,需要的可以参考下

在数据分析和可视化中,常用的一种图形类型是柱状图。柱状图能够清晰地展示不同分类变量的数值,并支持多组数据进行对比。本篇文章将介绍如何使用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:\Users\Admin\Desktop\数据核对\新建 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()方法显示图形。

效果图展示

完整代码

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = ['SimHei']  # 指定中文字体为黑体

# 读取Excel文件
df = pd.read_excel(r'C:\Users\Admin\Desktop\数据核对\新建 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()

到此这篇关于Python利用pandas和matplotlib实现绘制双柱状图的文章就介绍到这了,更多相关Python双柱状图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3转换html到pdf的不同解决方案

    Python3转换html到pdf的不同解决方案

    今天小编就为大家分享一篇关于Python3转换html到pdf的不同解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 分析python服务器拒绝服务攻击代码

    分析python服务器拒绝服务攻击代码

    以下python代码可以对网页服务器发起拒绝服务攻击,大家要预防啊,
    2014-01-01
  • Python中实现NumPy数组的真值判断

    Python中实现NumPy数组的真值判断

    在NumPy中,真值判断主要是用来处理数组中的元素,决定它们的“真”或“假”,这在数据处理和科学计算中非常常见,下面就来详细的介绍一下,感兴趣的可以了解一下
    2025-10-10
  • 把项目从Python2.x移植到Python3.x的经验总结

    把项目从Python2.x移植到Python3.x的经验总结

    这篇文章主要介绍了把项目从Python2.x移植到Python3.x的经验总结,包括作者所使用的Jinja2框架中一些需要注意的地方,需要的朋友可以参考下
    2015-04-04
  • 教你如何在Pycharm中导入requests模块

    教你如何在Pycharm中导入requests模块

    这篇文章主要介绍了教你如何在Pycharm中导入requests模块,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 教你如何用Pytorch搭建数英混合验证码图片识别模型

    教你如何用Pytorch搭建数英混合验证码图片识别模型

    大家都知道checkpoints存放的是模型文件,data存放的是数据集,本文给大家分享如何利用Pytorch搭建数英混合验证码图片识别模型包括普通卷积模块,深度可分离卷积模块,空间通道注意力模块,残差模块,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Python如何实现定时器功能

    Python如何实现定时器功能

    在本篇文章里小编给大家分享的是关于Python中的简单定时器实例及代码,需要的朋友们可以学习下。
    2020-05-05
  • Python多场景下实现Word转Excel详解

    Python多场景下实现Word转Excel详解

    在实际工作中,我们经常需要把 Word 文档(DOC 或 DOCX)转换成 Excel 文件,本文将探讨如何使用 Python 实现 Word 转 Excel并涵盖多种转换场景,感兴趣的小伙伴可以了解下
    2026-04-04
  • python的自变量选择(所有子集回归,后退法,逐步回归)

    python的自变量选择(所有子集回归,后退法,逐步回归)

    这篇文章主要介绍了python的自变量选择(所有子集回归,后退法,逐步回归),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • 一篇文章弄懂Python关键字、标识符和变量

    一篇文章弄懂Python关键字、标识符和变量

    这篇文章主要给大家介绍了关于Python关键字、标识符和变量的相关资料,Python关键词是Python保留的具有特定含义的特殊词语,用于执行某些操作,Python标识符是用户定义的名称,而变量是计算机内存中的一块区域,存储对象的内存地址,以便引用对象的值,需要的朋友可以参考下
    2021-07-07

最新评论