请注意,此错误已在pandas 0.15.1(https://github.com/pandas-
dev/pandas/pull/8693)中修复,
plt.plot(df.index, df.RandomValues)现在可以再次使用。
行为发生这种变化的原因是,从0.15开始,pandas
Index对象不再是numpy ndarray子类。但是 真正的原因
是matplotlib不支持
datetime64dtype。
解决方法是,在要使用matplotlib
plot函数的情况下,可以使用以下命令将索引转换为python datetime
to_pydatetime:
plt.plot(df.index.to_pydatetime(), df.RandomValues)
更详细的解释:
由于
Index不再是ndarray子类,因此matplotlib会将索引转换为dtype的numpy数组
datetime64(而之前,它保留了
Index对象,该对象的标量作为
Timestamp值返回
datetime.datetime,是matplotlib可以处理的子类)。在该
plot函数中,它调用
np.atleast_1d()输入,该输入现在返回datetime64数组,matplotlib将其作为整数处理。
我打开了一个与此有关的问题(因为它可能会得到很多使用):https
:
//github.com/pydata/pandas/issues/8614



