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

Sup*_*ric 3 matplotlib imshow

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

x = 274.99  y = 235.584  [.241, .213, .203]
Run Code Online (Sandbox Code Playgroud)

但是,当我将鼠标悬停在一个颤动图上时,它仅显示指针的x和y坐标,而没有显示所指向的2D向量的值。有没有办法让矢量值显示出来?

如果我只知道如何在matplotlib窗口中设置该文本位,则可以编写一个自定义鼠标事件处理程序。

Imp*_*est 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
Run Code Online (Sandbox Code Playgroud)