You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

matplotlib分组柱状图与折线图X轴不对齐 折线起始位置偏移如何解决

分组柱状图与折线图X轴不对齐修复方案

问题原因

Pandas 绘制分类柱状图时,会将 X 轴转换为从 0 开始的整数坐标序列,每个整数对应一个分类刻度。直接调用 Series.plot() 方法绘制折线时,默认的索引匹配逻辑和柱状图的整数坐标体系不兼容,加上 pivot 后的分类数据可能存在缺失月份,就会出现折线起始位置偏移的问题。

修复代码

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('instagram_category.csv')
# 计算月度总销售额
sales = df_total.groupby(['Month']).sum()['Daily Sales']
# 生成分类数据透视表
df = df.pivot(index='Month', columns='Type', values='Count')
# 按透视表的月份顺序重排销售额数据,保证两份数据的月份一一对应
sales = sales.reindex(df.index)

# 绘制分组柱状图,获取坐标轴对象
ax = df.plot(kind='bar', figsize=(15, 8))
# 手动创建双Y轴
ax2 = ax.twinx()
# 指定折线的X坐标为和柱状图完全对齐的整数序列,绘制折线图
ax2.plot(range(len(df)), sales, color='#b15a5e', linewidth=3)
# 按需设置折线侧Y轴标签
ax2.set_ylabel('销售额')

plt.title('日销售额 X Instagram内容分类')
plt.show()

原理说明

手动指定折线图的X轴坐标为range(len(df)),也就是和柱状图每个柱子位置完全对应的整数序列,同时通过reindex方法保证销售额数据的月份顺序和柱状图的月份顺序完全一致,彻底避免索引匹配导致的偏移问题。

内容的提问来源于stack exchange,提问作者OK_TAX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:15:06