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

使用matplotlib存储鼠标单击事件坐标

闻人思聪
2023-03-14
问题内容

我正在尝试在matplotlib中实现一个简单的鼠标单击事件。我希望绘制一个图,然后使用鼠标选择积分的上限和下限。到目前为止,我可以将坐标打印到屏幕上,但不能将其存储以供以后在程序中使用。我也想在第二次单击鼠标后退出与该图的连接。

下面是当前绘制并打印坐标的代码。

我的问题:

如何存储图形到列表的坐标?即点击= [xpos,ypos]

是否可以获取两组x坐标以便对该行的该部分进行简单的积分?

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10,10)
y = x**2

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)

def onclick(event):
    global ix, iy
    ix, iy = event.xdata, event.ydata
    print 'x = %d, y = %d'%(
        ix, iy)

    global coords
    coords = [ix, iy]

    return coords


for i in xrange(0,1):

    cid = fig.canvas.mpl_connect('button_press_event', onclick)


plt.show()

问题答案:

只需将mpl_connect调用一次即可将事件连接到事件处理程序。它将开始监听点击事件,直到您断开连接。你可以使用

fig.canvas.mpl_disconnect(cid)

断开事件挂钩。

您想要做的是这样的:

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-10,10)
y = x**2

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)

coords = []

def onclick(event):
    global ix, iy
    ix, iy = event.xdata, event.ydata
    print 'x = %d, y = %d'%(
        ix, iy)

    global coords
    coords.append((ix, iy))

    if len(coords) == 2:
        fig.canvas.mpl_disconnect(cid)

    return coords
cid = fig.canvas.mpl_connect('button_press_event', onclick)


 类似资料:
  • 问题内容: 在我的三个按钮上,鼠标=中键单击和=右键单击。 两键鼠标就是这种情况吗? 谢谢 问题答案: 为了避免任何歧义,请使用SwingUtilities中的实用程序方法:

  • 本文向大家介绍使用Python和OpenCV捕获鼠标单击事件,包括了使用Python和OpenCV捕获鼠标单击事件的使用技巧和注意事项,需要的朋友参考一下 使用的模块: 在本文中,我们将使用Python-openCV(cv2)和NumPy模块。 Python-opencv(cv2): Python-opencv(cv2)是一个python库,它将帮助我们解决开源计算机视觉问题。 NumPy: Nu

  • 本文向大家介绍jQuery实现单击和鼠标感应事件,包括了jQuery实现单击和鼠标感应事件的使用技巧和注意事项,需要的朋友参考一下 1.实现单击事件动态交替 之前我们讲到了toggleClass(),对于单击事件而言,jQuery同样提供了动态交替的toggle()方法,这个方法接受两个参数,两个参数均为监听函数,在click事件中交替使用。 例子:点击事件的动态交互。 2.实现鼠标感应 在css

  • 本文向大家介绍python点击鼠标获取坐标(Graphics),包括了python点击鼠标获取坐标(Graphics)的使用技巧和注意事项,需要的朋友参考一下 使用Python进行图像编程,要使用到Graphics库。下面列举出较常用的代码 接下来使用Graphics库进行编写 出现下面问题:name '_name_'is not defined.出现原因是下划线应该是两个(__'name'__)

  • 问题内容: 默认情况下,事件一键启动。我有一个,但我想从双击开始。可能吗? 问题答案: 我相信您可以从MouseEvent中提取点击计数(假设其名为e) 试试这个

  • 本文向大家介绍使用js获取鼠标坐标相关面试题,主要包含被问及使用js获取鼠标坐标时的应答技巧和注意事项,需要的朋友参考一下