【问题标题】:Mouse scattering with matplotlib使用 matplotlib 进行鼠标散射
【发布时间】:2018-08-14 14:34:23
【问题描述】:

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

  • 将鼠标放在窗口上。指针后面应该跟一个点(plt.scatter)

  • 获取鼠标坐标并将其发送到我的网络

  • 使用网络输出,改变点的颜色

我可以遵循任何线索吗?

谢谢!!

【问题讨论】:

标签: python matplotlib mouseevent scatter-plot interactive


【解决方案1】:

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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多