我试图在一个以pandas timedelta值为索引的数据框中绘制一些列。当我绘制它时,所有点沿x轴均匀分布,即使它们之间有可变的时间。
time = [pd.Timestamp('9/3/2016')-pd.Timestamp('9/1/2016'),pd.Timestamp('9/8/2016')-pd.Timestamp('9/1/2016'),pd.Timestam\p('9/29/2016')-pd.Timestamp('9/1/2016')]
df = pd.DataFrame(index=time, columns=['y'],data=[5,0,10])
df.plot()
plt.show()
如果我使用日期而不是timedelta,我在x轴上得到适当的间距:
time = [pd.Timestamp('9/3/2016'),pd.Timestamp('9/5/2016'),pd.Timestamp('9/20/2016')]
df = pd.DataFrame(index=time, columns=['y'],data=[5,0,10])
df.plot()
plt.show()
有没有办法让它正确显示?
答案 0 :(得分:0)
目前,大熊猫还没有完全支持它。有关详细信息,请参阅this issue on Github。
要快速解决方法,您可以使用:
import matplotlib.pyplot as plt
plt.plot(df.index, df.values)
这是一个如何使用刻度线来使它们可读(而不仅仅是一个非常大的数字)的示例
import matplotlib as mpl
import datetime
fig, ax = plt.subplots()
ax.plot(df.index, df.values)
plt.xticks([t.value for t in df.index], df.index, rotation=45)
plt.show()