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

折线图与对应条形图不对齐:折线起始于week2而非week1

折线图起始位置偏移问题解决方法

你遇到的问题是:同一坐标轴上的条形图和折线图,折线没有从week1的位置开始,而是偏移到了week2的位置。这是因为条形图的x轴是分类类型(分组后的week索引被当作分类标签),而折线图默认把x轴解析为数值类型,两者的坐标映射规则不一样,导致对齐错位。

修复方案1:手动指定折线的x坐标

用matplotlib原生的plot函数,把x轴设置为条形图的位置索引(0到52,对应week1到week53),就能和条形图完全对齐:

import pandas as pd
import matplotlib.pyplot as plt  # 补充导入plt,原代码漏了这行

url = 'https://raw.githubusercontent.com/Arancium98/datasets/main/ventas_pizzas2.csv'
df = pd.read_csv(url)

VentaS = df.groupby('week')['total_price'].sum()
fig, ax = plt.subplots(figsize=(15, 5))
# 绘制条形图
VentaS.plot(kind='bar', ax=ax, title='Ventas por semana')
# 用range生成对应条形位置的x坐标,绘制折线
ax.plot(range(len(VentaS)), VentaS.values, color='tab:orange', marker='o')
plt.show()

修复方案2:将week索引转为字符串

把分组后的week索引转换成字符串类型,让pandas把x轴统一当作分类处理,折线图就会自动对齐:

import pandas as pd
import matplotlib.pyplot as plt

url = 'https://raw.githubusercontent.com/Arancium98/datasets/main/ventas_pizzas2.csv'
df = pd.read_csv(url)

VentaS = df.groupby('week')['total_price'].sum()
# 将索引转为字符串,统一x轴类型
VentaS.index = VentaS.index.astype(str)
fig, ax = plt.subplots(figsize=(15, 5))
VentaS.plot(kind='bar', ax=ax, title='Ventas por semana')
VentaS.plot(kind='line', color='tab:orange', ax=ax, marker='o')
plt.show()

注意事项

原代码里缺少import matplotlib.pyplot as plt的导入,运行时会报错,必须补上。另外添加marker='o'可以让折线的每个数据点更醒目,方便对应查看。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 01:27:36