当前位置: 首页 > 面试题库 >

在matplotlib图形窗口(带有imshow)中,如何删除,隐藏或重新定义鼠标的显示位置?

林波鸿
2023-03-14
问题内容

我将ipython和matplotlib一起使用,并且以这种方式显示图像:

(以:ipython –pylab开头)

figure()  
im = zeros([256,256]) #just a stand-in for my real images   
imshow(im)

现在,当我将光标移到图像上方时,我看到在图形窗口的左下角显示了鼠标的位置。显示的数字是x =列号,y
=行号。这是非常面向情节而不是面向图像的。我可以修改显示的数字吗?

  1. 我的首选是显示x =行号标量,y =列号标量
  2. 我的第二个选择是显示x =行号,y =列号
  3. 我的第三个选择是完全不显示鼠标位置的数字

我可以做这些事情吗?我什至不知道该如何称呼鼠标悬停测试显示小部件。谢谢!


问题答案:

你可以通过简单地重新分配在每个轴的基础上做到这一点很简单format_coord的的Axes对象,如图所示的例子。

format_coord 是具有2个参数(x,y)并返回字符串(然后显示在图上的任何函数)。

如果您不想显示任何内容,请执行以下操作:

ax.format_coord = lambda x, y: ''

如果只需要行和列(不检查)

scale_val = 1
ax.format_coord = lambda x, y: 'r=%d,c=%d' % (scale_val * int(x + .5), 
                                             scale_val * int(y + .5))

如果要在制作的 每个 iimage上执行此操作,只需定义包装函数

def imshow(img, scale_val=1, ax=None, *args, **kwargs):
    if ax is None:
         ax = plt.gca()
    im = ax.imshow(img, *args, **kwargs)
    ax.format_coord = lambda x, y: 'r=%d,c=%d' % (scale_val * int(x + .5), 
                                             scale_val * int(y + .5))
    ax.figure.canvas.draw()
    return im

经过大量测试,我认为应该或多或少地取代 plt.imshow



 类似资料:
  • 问题内容: 我正在研究一些计算机视觉算法,我想展示一个numpy数组在每个步骤中如何变化。 现在有效的是,如果我在代码末尾有一个简单的代码,则该窗口将显示并显示最终图像。 但是,我想做的是在每次迭代中更改图像时更新并显示imshow窗口。 因此,例如,我想这样做: 问题在于,只有完成整个计算后,Matplotlib窗口才会被激活。 我已经尝试了原生matplotlib和pyplot,但是结果是一样

  • 我需要隐藏或删除后退按钮或后退图标从AppBar是可能的吗? 如果可能,那么如何? 我设置了,但它仍然存在,没有任何变化

  • 问题内容: 如何显示一组隐藏的div的onmouseover? 例如 : 所有div需要在onmouseover事件中显示。 问题答案: 如果div被隐藏,它们将永远不会触发该事件。 您将不得不听其他未隐藏元素的事件。 您可以考虑将隐藏的div包装到保持可见的容器div中,然后对这些容器进行操作。 如果希望当鼠标离开容器div时div消失,也可以监听事件:

  • 嗨,我有javafx应用程序,它只有一个stage.On标签键按下文本字段的事件,一个弹出窗口显示在应用程序的主要阶段 我不点击弹出窗口,也不选择弹出窗口中的任何内容。我会点击它后面的舞台。我希望popup被关闭,但在执行popup的focusedProperty侦听器之前,它给了我IllegalArgumentException。 如果popup位于不同的阶段(应用程序的主阶段除外),根据阶段f

  • 问题内容: 我想知道是否有人想知道为什么在按下GUI上的按钮后,下面的代码为什么不显示带有线的图形。我想创建一个程序,该程序在通过单击按钮导入一组数据后执行一长串命令。这些命令之一将是在同一窗口内的图形上显示光谱数据。这是我到目前为止的内容: 问题答案: 那是因为xaxis和yaxis的范围不会更改为新数据的范围,因此请更改您的refreshFigure,如下所示:

  • 问题内容: 我有一个3d渲染程序,该程序根据鼠标在屏幕上的位置围绕观察者旋转世界。这条线定义了地球旋转的弧度量 其中xy [0]是屏幕中心的x坐标 这意味着观察者视野的旋转量受到鼠标可以移动的距离的限制。如果我能使鼠标回到屏幕中央,则可以解决此问题。有任何想法吗? 问题答案: 好消息是有一种方法可以做到。 中间的消息是,它没有很好的记录。 坏消息是它仅在某些平台上有效。 另一个中间消息是,您至少可