如果您的 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/