如果您的 x 轴上有日期时间对象,您如何获得在 matplotlib 的单击事件处理程序上单击的对象?

即当你这样做时:

def onclick2(event):
    print event.x

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

我试过 event.x、event.xdata 和 event._x,它们都返回整数

最佳答案

我在尝试从使用 matplotlib 绘制的 Pandas 时间索引数据框返回时间戳 x 轴数据时遇到了类似的问题。尝试 Ajean 对 event.xdata 的 num2date 建议会返回一个浮点值,该值太大而不能作为日期数(例如 23286385.16 for 2014-4-14 2:25)。

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

关于python - x 轴上的 Matplotlib 日期时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28802077/

10-16 07:35