我有一个如下所示的数据框df
:
Mid Quote Volume
2011-01-06 14:25:00 31.035 10
2011-01-06 14:25:01 32.085 42
2011-01-06 14:25:02 32.900 100
df.index
<class 'pandas.tseries.index.DatetimeIndex'>
[2011-01-06 14:25:00, ..., 2011-01-06 14:45:00]
Length: 1201, Freq: S, Timezone: None
我想做一个3D情节如下:
td = plt.figure().gca(projection='3d')
td.scatter(df.index.time, df['Mid Quote'].values, df['Volume'].values)
td.set_xlabel('Time')
td.set_ylabel('Mid Quote')
td.set_zlabel('Volume')
plt.show()
我收到以下错误:TypeError: float() argument must be a string or a number
我知道问题出在df.index.time
上,因为如果我用range(0,len(df.Volume))
替换它,我会得到情节。
我还尝试将df.index.time
替换为新的变量time
time = [y[0].time() for y in df.iterrows()]
>>>time
datetime.time(14, 44, 55), datetime.time(14, 44, 56), datetime.time(14, 44, 57), datetime.time(14, 44, 58), datetime.time(14, 44, 59), datetime.time(14, 45)]...
如何在x轴上获得时间?