Python利用pandas和matplotlib实现绘制柱状折线图
作者:悬崖上的金鱼
这篇文章主要为大家详细介绍了如何使用 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柱状折线图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!