无法在matplotlib中存储鼠标点击坐标

时间:2018-01-30 16:55:10

标签: python matplotlib mouseevent

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

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)

我的python崩溃。

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

由于

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

Python不会崩溃。它会抛出错误并告诉你错误。在这种情况下,它会告诉你像

这样的东西
TypeError: append() takes exactly one argument (2 given)

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

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

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

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

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