Python pandas 散点图日期时间错误

Python pandas plot scatter datetime error

我想要一个散点图,其中 x 轴是 datetime,y 轴是 int。而且我只有几个数据点是离散的而不是连续的,所以我不想连接数据点。

我的数据框是:

df = pd.DataFrame({'datetime':[dt.datetime(2016,1,1,0,0,0), dt.datetime(2016,1,4,0,0,0),
    dt.datetime(2016,1,9,0,0,0)], 'value':[10, 7, 8]})

如果我使用 "normal" 绘图,我会得到一个 "line" 图:

df.plot(x='datetime', y='value')

但是我怎样才能只绘制点呢?这给出了错误:

df.plot.scatter(x='datetime', y='value')
KeyError: 'datetime'

当然我可以使用一些作弊来得到我想要的结果,例如:

df.plot(x='datetime', y='value', marker='o', linewidth=0)

但是我不明白为什么scatter版本不行...

感谢您的帮助!

可以使用DataFrame.plot.scatter()方法绘制散点图。散点图需要 numeric 列用于 x 和 y 轴。这些 可以分别由 x 和 y 关键字指定。

替代方法:

In [71]: df['day'] = df['datetime'].dt.day

In [72]: df.plot.scatter(x='day', y='value')
Out[72]: <matplotlib.axes._subplots.AxesSubplot at 0x25440a1bc88>