首页 > 解决方案 > 如何使用 mpldatacursor 显示日期(X 轴)信息?

问题描述

我正在研究遥测系统,现在我想通过点击查看绘图中的每个散点以及每对坐标。我的情节是一个时间序列,所以我很难用数据游标显示每个日期。我目前正在使用这条线

plt.gca().fmt_xdata = matplotlib.dates.DateFormatter('%H:%M:%S')

这证明我的 X 轴是基于日期的。

我已经尝试过这样的:

datacursor(ax1, formatter = 'Valor medido : {y:.6f} às {x:.6f}'.format)

Y 的输出没问题,但日期显示为“纪元数”,如“57990.011454”。

经过一番研究,我可以将此数字转换为:

matplotlib.dates.num2date(d).strftime('%H:%M:%S')

但我没有把它们放在一起显示在我的光标中。

提前致谢!

标签: python-3.xdatematplotlib

解决方案


formatter=接受任何返回字符串的函数。因此,您可以编写(代码未经测试,因为您没有提供最小、完整和可验证的示例

def print_coords(**kwargs):
    return 'Valor medido : {y:.6f} às {x:s}'.format(y=kwargs['y'],
                                                    x=matplotlib.dates.num2date(kwargs['x']).strftime('%H:%M:%S'))

datacursor(ax1, formatter=print_coords)

推荐阅读