python – x轴上的Matplotlib日期时间

如果x轴上有日期时间对象,那么如何在matplotlib的click事件处理程序中单击哪一个?

我这样做的时候:

def onclick2(event):
    print event.x

onClickId = figure.canvas.mpl_connect('button_press_event', OnClick2)

我已经尝试了event.x,event.xdata和event._x,它们都返回了int

最佳答案 当我尝试从使用matplotlib绘制的pandas时间索引数据帧返回时间戳x轴数据时,我遇到了类似的问题.在event.xdata上尝试Ajean的num2date建议会返回一个太大而不是日期数的浮点值(例如2014-4-14 2:25为23286385.16).

为了扩展Ajean的建议,最好先使用matplotlib.dates.date2num函数将datetime对象转换为numpy.float64.然后你可以使用matplotlib事件处理程序创建的numpy.float64数组作为x轴.然后,可以使用matplotlib.dates.num2date函数将事件处理程序返回的event.xdata转换回日期时间.

点赞