matplotlib回调函数在Visual studio Code中不起作用



我在Visual Studio Code上使用Python。
我想创建一个程序,当单击matplotlib中显示的图形上的一个点时,它将显示它被单击。
为此,我将matplotlib事件绑定到使用.canvas.mpl_connect()创建的单击函数。
然而,当我运行程序时,它的行为不像预期的那样,我没有得到一个print('clicked object')。
下面是我运行的代码:

import matplotlib.pyplot as plt
import numpy as np
def click(event):
print('clicked object')
x = np.random.randn(100)
y = np.random.randn(100)
fig = plt.figure()
fig.canvas.mpl_connect('pick_event', click)
plt.xlabel("x")
plt.ylabel("y")
plt.scatter(x, y)
plt.show()

环境如下
·Visual Studio Code 1.60.0
·Python 3.6.8

问题解决了。

事实证明,由于我缺乏研究,我需要在绘图时将picker=True添加到scatter()的选项中。

这是一个基本的东西,可以在matplotlib文档中找到,但我把这个问题留给自己作为提醒。我把这个问题留给自己思考。

修改后的代码如下

import matplotlib.pyplot as plt
import numpy as np
def click(event):
print('clicked object')
x = np.random.randn(100)
y = np.random.randn(100)
fig = plt.figure()
fig.canvas.mpl_connect('pick_event', click)
plt.xlabel("x")
plt.ylabel("y")
plt.scatter(x, y, picker=True, pickradius=2.5)
plt.show()