无法在 Matplotlib 中存储鼠标单击坐标



我利用鼠标单击事件向终端显示图中鼠标单击的坐标。

def onclick(event):
        if event.inaxes is not None:
            print(event.xdata, event.ydata)
        else:
            print("Clicked outside axes bounds but inside plot window")

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

这段代码有效,但是如果我希望通过这样做来存储坐标:

coords = []
    def onclick(event):
        if event.inaxes is not None:
            coords.append(event.xdata, event.ydata)
        else:
            print("Clicked outside axes bounds but inside plot window")

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

我的蟒蛇崩溃了。

关于我做错了什么的任何建议?或者如果有更好的方法可以做到这一点?

谢谢

崩溃的原因是append只需要 1 个输入。

Python 不会崩溃。相反,它会抛出一个错误并告诉您出了什么问题。在这种情况下,它会告诉你类似

TypeError: append() takes exactly one argument (2 given)

从中你可以推断出你有一个论点太多了。

可能的解决方案:您可以附加一个元组,

coords.append((event.xdata, event.ydata))

或者您可以使用两个列表,

coordx.append(event.xdata)
coordy.append(event.ydata)

最新更新