Python 忽略matplotlib绘图上的所有鼠标单击

Python 忽略matplotlib绘图上的所有鼠标单击,python,matplotlib,event-handling,mouseevent,Python,Matplotlib,Event Handling,Mouseevent,我最近构建了一个python脚本,可以与Arduino和一个使用激光雷达绘制房间地图的硬件进行交互。一切都很好,但只要你点击maptotlib生成的绘图,计算机就会崩溃,并使正在运行的脚本崩溃。这部分是因为我得到了一台300美元的电脑来运行它,所以它不是很强大。然而,我觉得即使是一台300美元的电脑也应该能够处理鼠标点击 如何使用matplotlib完全忽略鼠标点击,从而使计算机不会崩溃并使脚本崩溃 如果这不是正确的解决方案,有什么更好的解决方案 编辑:这是一个交互式绘图会话(有点像,我只是用新

我最近构建了一个python脚本,可以与Arduino和一个使用激光雷达绘制房间地图的硬件进行交互。一切都很好,但只要你点击maptotlib生成的绘图,计算机就会崩溃,并使正在运行的脚本崩溃。这部分是因为我得到了一台300美元的电脑来运行它,所以它不是很强大。然而,我觉得即使是一台300美元的电脑也应该能够处理鼠标点击

如何使用matplotlib完全忽略鼠标点击,从而使计算机不会崩溃并使脚本崩溃

如果这不是正确的解决方案,有什么更好的解决方案


编辑:这是一个交互式绘图会话(有点像,我只是用新数据替换旧数据,没有调用
plot.ion()
命令)。所以,我不能保存情节并显示它。Arduino持续传输数据。

您可以尝试绕过绘图上的点击事件:

import matplotlib.pyplot as plt

fig = plt.figure()

plt.axes(xlim = (0, 3), ylim = (0, 3))

def onclick(event):
    pass

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

plt.show()
,但我怀疑这是否行得通。我推荐的解决方案(如果上述内容不起作用)是制作绘图并将其保存到文件中(不显示):

而不是让python使用您在操作系统中喜欢的任何外部工具打开映像(例如使用
子流程


我这么说是因为我怀疑您可能有某种包不兼容,导致脚本崩溃(可能是来自mpl的后端或您通过mpl使用的任何其他库)。如果是这种情况,则需要更多信息来尝试解决问题。

您可以尝试绕过绘图上的单击事件:

import matplotlib.pyplot as plt

fig = plt.figure()

plt.axes(xlim = (0, 3), ylim = (0, 3))

def onclick(event):
    pass

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

plt.show()
,但我怀疑这是否行得通。我推荐的解决方案(如果上述内容不起作用)是制作绘图并将其保存到文件中(不显示):

而不是让python使用您在操作系统中喜欢的任何外部工具打开映像(例如使用
子流程


我这么说是因为我怀疑您可能有某种包不兼容,导致脚本崩溃(可能是来自mpl的后端或您通过mpl使用的任何其他库)。如果是这种情况,则需要更多信息来尝试解决此问题。

我觉得通过改变硬件可能更容易解决此问题-您是否可以暂时拔下鼠标插头,或在轨迹板上粘贴胶带以阻止人们摆弄它


我建议这样做是因为你的崩溃脚本总是会以某种方式处理鼠标点击,如果你不知道是什么导致了崩溃,那么你最好确保没有点击。

我觉得通过改变硬件可能更容易解决这个问题-你能暂时拔下鼠标吗,或者在轨道板上贴胶带,防止人们摆弄它

我建议这样做是因为崩溃脚本总是以某种方式处理鼠标点击,如果您不知道是什么导致了崩溃,那么最好确保没有点击