我想要一个散点图,其中x轴是datetime
,y轴是int
。而且我只有一些离散且不连续的数据点,所以我不想连接数据点。
我的DataFrame是:
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
版本不起作用......
谢谢你的帮助!
答案 0 :(得分:3)
可以使用DataFrame.plot.scatter()方法绘制散点图。散点图需要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>