如何在matplotlib中控制鼠标悬停文本

时间:2017-10-02 18:10:59

标签: matplotlib imshow

当鼠标悬停使用imshow显示的图像时,您可以将鼠标悬停在图像上以检查其RGB值。 matplotlib窗口的右下角(与工具栏共享空间)显示指向的像素的图像坐标和RGB值:

x = 274.99  y = 235.584  [.241, .213, .203]

然而,当我鼠标悬停在箭头图上时,它只显示指针的x和y坐标,但不显示指向的2D矢量的值。有没有办法让矢量值显示出来?

如果我只知道如何在matplotlib窗口中设置该位文本,我会很好地编写自定义鼠标事件处理程序。

1 个答案:

答案 0 :(得分:5)

有时默认情况下不存在有关颜色值的信息。事实上,我认为当前版本是基于Stackoverflow中关于该功能的一些问题而提出的一些代码。

我很快发现了这两个问题:

这个想法是改变鼠标悬停轴时调用的函数。此功能存储在ax.format_coord中。因此,一种可能的解决方案是编写自定义函数,以根据输入坐标返回所需的输出,例如:

之类的东西
def format_coord(x, y):
    try:
        z = # get value depending on x,y, e.g. via interpolation on grid
            # I can't fill this because the kind of data is unknown here
        return "x: {}, y: {}, z: {}".format(x,y,z)

    except:
        return "x: {}, y: {}".format(x,y)

ax.format_coord = format_coord