使用matplotlib进行小鼠散射

问题描述 投票:-1回答:1

我想用matplotlib进行交互式绘图。我训练了一个神经网络来近似分布,我想手动查看它是否正确。因此,一旦计算完成,我想:

  • 将鼠标放在窗口上。指针后跟一个点(plt.scatter)
  • 获取鼠标的坐标并将其发送到我的网络
  • 使用网络输出,更改点的颜色

我可以遵循任何线索?

谢谢 !!

python matplotlib mouseevent scatter-plot interactive
1个回答
0
投票

Matplotlib有一个通用的事件处理API,它适用于所有GUI后端,这些后端记录了here。您想要的事件称为“motion_notify”。

这是一个例子(运行它并在绘图窗口周围移动鼠标 - 鼠标信息将在终端中打印):

#!/usr/bin/env python3

from matplotlib import pyplot as plt
import numpy as np

fig, ax = plt.subplots()
ax.plot(np.random.rand(10))

def onmotion(event):
    print('%s dblclick: button=%s, x=%s, y=%s, xdata=%s, ydata=%s' %
          (event.dblclick, event.button,
           event.x, event.y, event.xdata, event.ydata))

cid = fig.canvas.mpl_connect('motion_notify_event', onmotion)

plt.show()

如果您将matplotlib嵌入到GUI框架中,那么您应该使用框架的API。

© www.soinside.com 2019 - 2024. All rights reserved.