【问题标题】:Python pandas plot scatter datetime errorPython pandas plot scatter datetime 错误
【发布时间】:2016-12-07 19:59:08
【问题描述】:

我想要一个散点图,其中 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]})

如果我使用“正常”图而不是“线”图:

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 版本不起作用...

感谢您的帮助!

【问题讨论】:

标签: python pandas plot scatter-plot


【解决方案1】:

可以使用 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>

【讨论】:

  • 谢谢!所以这不是一个错误,它是一个特性。不错;-)
  • 但是一天不是单调的,除非所有事情都发生在同一个月内......
猜你喜欢
  • 2020-09-18
  • 2015-06-03
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
相关资源
最近更新 更多