在下面。情节,我想在x轴上绘制日期。我有一份日期清单:
import arrow as ar
date_plt = '2016-04-01'
_frst_day = '2016-01-01'
_last_day = '2016-12-31'
[ar.get(date_plt) + timedelta(days=x) for x in range((ar.get(_last_day) - ar.get(_frst_day)).days + 1)]
如何在x轴上绘制日期,同时仍能绘制线条和图上的点(如图所示)
答案 0 :(得分:1)
我认为你想(用一些代码生成假图):
labels=[ar.get(date_plt) + timedelta(days=x) for x in range((ar.get(_last_day)-ar.get(_frst_day)).days + 1)]
x=np.arange(366)
y=x*10
plt.plot([l.datetime for l in labels],y) #convert arrow in datetime
请注意,这样绘制日期时间对象,这由matplotlib自动处理,例如在缩放和间距调整中(而不是例如在x,y和替换刻度上绘图)。 要绘制或注释数据,您可以直接寻址到日期时间x轴,例如(例如第150天):
plt.plot(labels[150].datetime,y[150],'o')
plt.annotate('day 150',(labels[150].datetime,y[150]))