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

如何用Pandas DataFrame绘制以date索引为X轴的散点图?

解决Pandas散点图中索引作为X轴的报错问题

这个问题我之前也踩过坑!咱们先理清楚为啥会报错:

  • 第一个KeyError: 'date':因为df.plot()的x参数默认只会在DataFrame的列里查找,而你的date是索引,不是普通列,所以找不到对应字段。
  • 第二个ValueError:散点图和折线图逻辑不同——折线图可以默认把索引当X轴,但散点图要求必须明确指定X和Y的数据源,不能用默认索引。

下面给你三种实用的解决方法,按需选择:

方法一:把索引转为普通列(修改原DataFrame)

如果不介意改动原数据,可以先把date索引转成列,之后就能正常用x='date'参数了:

# 把索引转为列,inplace=True直接修改原df
df.reset_index(inplace=True)
# 现在可以正常绘制散点图
df.plot(kind='scatter', x='date', y='columnA')

方法二:直接传入索引作为X轴(不修改原DataFrame)

如果不想改动原数据,直接把索引对象传给x参数即可:

# 直接用df.index作为X轴数据源
df.plot(kind='scatter', x=df.index, y='columnA')

如果你的date是datetime类型的索引,Pandas会自动处理时间刻度的显示,不用额外转换。

方法三:用Matplotlib原生函数绘制(更灵活)

如果你需要更多自定义设置,直接用Matplotlib的scatter函数会更自由:

import matplotlib.pyplot as plt

# 直接指定X为索引,Y为columnA
plt.scatter(df.index, df['columnA'])
# 自定义轴标签
plt.xlabel('date')
plt.ylabel('columnA')
# 显示图形
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:46:39