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

 更新时间:2023年11月10日 08:15:06   作者:悬崖上的金鱼  
这篇文章主要为大家详细介绍了如何使用 Python 中的 Pandas 和 Matplotlib 库创建一个柱状图与折线图结合的数据可视化图表,感兴趣的可以了解一下

在数据分析和展示中,经常需要将数据可视化呈现,以便更直观地理解数据背后的趋势和关联关系。本篇文章将介绍如何使用 Python 中的 Pandas 和 Matplotlib 库创建一个柱状图与折线图结合的数据可视化图表。

准备工作

首先,我们需要导入必要的库,并读取我们的数据源,这里使用了 Pandas 库来读取 Excel 文件,Matplotlib 则用于绘制图表。

import pandas as pd
import matplotlib.pyplot as plt

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

# 读取Excel文件
df = pd.read_excel('新建 XLSX 工作表.xlsx', sheet_name='Sheet3')

数据处理与准备

在这一部分,我们会对数据进行处理,并准备好需要用到的数据。具体操作包括设置 x 轴的位置和准备子图等。

# 设置x轴的位置
x = df.index
# 创建画布和子图
fig, ax1 = plt.subplots()

绘制柱状图和折线图

接下来,我们将绘制柱状图和折线图,并添加相应的数据标签和图例。

# 绘制柱状图
ax1.bar(x, df['销售数量'], label='销售数量', color='skyblue', width=0.4)

# 添加数据标签
for i, v in enumerate(df['销售数量']):
    ax1.text(i, v + 3, str(v), ha='center', va='bottom', fontsize=8)

# 绘制折线图
ax1.plot(x, df['销售数量2'], color='lightgreen', marker='o', linestyle='-', linewidth=2)

# 添加折线图数据标签
for i, v in enumerate(df['销售数量2']):
    ax1.text(i, v + 3, str(v), ha='center', va='bottom', color='g', fontsize=8)

图表美化和展示

最后,我们对图表进行美化,包括添加标签、标题、图例以及设置坐标轴刻度标签字体大小等,并展示最终的图形。

# 添加标签和标题
ax1.set_xlabel('店铺名称', fontsize=10)
ax1.set_ylabel('销售数量/销售数量2', fontsize=10)
ax1.set_title('销售数量与销售数量2对比', fontsize=12)
ax1.set_xticks(x)
ax1.set_xticklabels(df['店铺名称'], rotation=0, ha='right')
ax1.legend(['销售数量', '销售数量2'], loc='upper left')

# 设置坐标轴刻度标签字体大小
ax1.tick_params(axis='both', which='major', labelsize=8)

# 增加网格线
ax1.grid(axis='y', linestyle='--', alpha=0.7)

# 显示图形
plt.show()

通过以上步骤,我们成功创建了一个柱状图与折线图结合的数据可视化图表。

图表效果图展示

 完整代码

import pandas as pd
import matplotlib.pyplot as plt

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

# 读取Excel文件
df = pd.read_excel(r'C:\Users\liuchunlin2\Desktop\新建文件夹\新建 XLSX 工作表.xlsx', sheet_name='Sheet3')

# 设置x轴的位置
x = df.index

# 创建画布和子图
fig, ax1 = plt.subplots()

# 绘制柱状图
ax1.bar(x, df['销售数量'], label='销售数量', color='skyblue', width=0.4)

# 添加数据标签
for i, v in enumerate(df['销售数量']):
    ax1.text(i, v + 3, str(v), ha='center', va='bottom', fontsize=8)

# 绘制折线图
ax1.plot(x, df['销售数量2'], color='lightgreen', marker='o', linestyle='-', linewidth=2)

# 添加折线图数据标签
for i, v in enumerate(df['销售数量2']):
    ax1.text(i, v + 3, str(v), ha='center', va='bottom', color='g', fontsize=8)

# 添加标签和标题
ax1.set_xlabel('店铺名称', fontsize=10)
ax1.set_ylabel('销售数量/销售数量2', fontsize=10)
ax1.set_title('销售数量与销售数量2对比', fontsize=12)
ax1.set_xticks(x)
ax1.set_xticklabels(df['店铺名称'], rotation=0, ha='right')
ax1.legend(['销售数量', '销售数量2'], loc='upper left')

# 设置坐标轴刻度标签字体大小
ax1.tick_params(axis='both', which='major', labelsize=8)

# 增加网格线
ax1.grid(axis='y', linestyle='--', alpha=0.7)

# 显示图形
plt.show()

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

相关文章

  • python逆向入门教程

    python逆向入门教程

    这篇文章主要介绍了python逆向入门教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 关于对python中进程的几个概念理解

    关于对python中进程的几个概念理解

    进程由程序,数据和进程控制块组成,是正在执行的程,程序的一次执行过程,是资源调度的基本单位,下面这篇文章主要给大家介绍了关于对python中进程的几个概念理解,需要的朋友可以参考下
    2021-10-10
  • django admin后台添加导出excel功能示例代码

    django admin后台添加导出excel功能示例代码

    这篇文章主要介绍了django admin 后台添加导出excel功能示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Python中lambda排序的六种方法

    Python中lambda排序的六种方法

    本文主要介绍了Python中使用lambda函数进行排序的六种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python反编译学习之字节码详解

    python反编译学习之字节码详解

    这篇文章主要给大家介绍了关于python反编译学习之字节码的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Python中列表、字典、元组数据结构的简单学习笔记

    Python中列表、字典、元组数据结构的简单学习笔记

    这篇文章主要介绍了Python中列表、字典、元组数据结构的简单学习笔记,文中讲到了字典在Python3中特性和操作方法的一些变化,需要的朋友可以参考下
    2016-03-03
  • python使用paramiko模块实现ssh远程登陆上传文件并执行

    python使用paramiko模块实现ssh远程登陆上传文件并执行

    使用paramiko,ssh远程登陆,长传文件并执行。其中用到了多线程和队列,paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。
    2014-01-01
  • 浅谈PYTHON 关于文件的操作

    浅谈PYTHON 关于文件的操作

    这篇文章主要介绍了PYTHON 关于文件的操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • for循环在Python中的工作原理详细

    for循环在Python中的工作原理详细

    for...in 是Python程序员使用最多的语句,for 循环用于迭代容器对象中的元素,这些对象可以是列表、元组、字典、集合、文件,甚至可以是自定义类或者函数,下面小编将举例说明,需要的朋友可以参考下
    2021-10-10
  • Python如何通过百度翻译API实现翻译功能

    Python如何通过百度翻译API实现翻译功能

    这篇文章主要介绍了Python如何通过百度翻译API实现翻译功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论