我有一个带有这种形式的年平均数据的熊猫对象:
DatetimeIndex(['2005-12-31', '2006-12-31', '2007-12-31', '2008-12-31',
'2009-12-31', '2010-12-31', '2011-12-31'],
dtype='datetime64[ns]', freq='A-DEC')
2005-12-31 3.347463
2006-12-31 3.042220
2007-12-31 3.296574
2008-12-31 3.082333
2009-12-31 2.471380
2010-12-31 2.337974
2011-12-31 2.083004
我想绘制从年初到年底的水平线,其中的值当前与一年中的最后一天相关联。目前,当我绘制这个 pandas 对象时,我在年底的点之间得到线性插值。我尝试使用以下方式添加索引:
new_index= ['2005', '2006', '2007', '2008','2009', '2010', '2011']
df_year.reindex(new_index)
这导致相同的图表。或者添加每年的第一天(虽然不利于自动化):
z=datetime.strptime('01-01-2005', '%d-%m-%Y')
indx.append(pd.Index([z]))
df_year.set_value(z,2)
这导致:
DatetimeIndex(['2005-12-31', '2006-12-31', '2007-12-31', '2008-12-31',
'2009-12-31', '2010-12-31', '2011-12-31', '2005-01-01'],
dtype='datetime64[ns]', freq=None)
2005-12-31 3.347463
2006-12-31 3.042220
2007-12-31 3.296574
2008-12-31 3.082333
2009-12-31 2.471380
2010-12-31 2.337974
2011-12-31 2.083004
2005-01-01 2.000000
但是,它似乎无法检测到该日期在 2005 年 12 月 31 日之前,所以它只是从 2005 年到 2011 年画一条水平线。如果你能帮助我,我将不胜感激。
不幸的是,我无法上传图表,因为我正在使用不同的服务器并且无法保存图像。
谢谢你。
版:
这是我使用的代码:
plt.figure()
plt.plot(df_month.index, df_month, 'k')
plt.plot(df_year.index, df_year, 'g')
plt.show()