gpt4 book ai didi

python - pick_event 使用 matplotlib 获取点

转载 作者:行者123 更新时间:2023-12-01 02:48:39 26 4
gpt4 key购买 nike

我正在尝试使用 pick_event 通过鼠标单击直接访问点的精确值:

def plot(self, x_values: list, y_values: list):
def pick_handler(event):
x, y = event.mouseevent.xdata, event.mouseevent.ydata
print(x, y)

...
self.sc, = self.axis.plot(x_values, y_values, 'bo', markersize=7, picker=7)
self.fig.canvas.mpl_connect('pick_event', pick_handler)
...

问题是我没有得到确切的值,因为 picker 设置为 7。有没有办法在不计算最近点的情况下获取这些值?

谢谢!

最佳答案

当然,您不想知道鼠标的位置(event.mouseevent.xdata),而是想知道事件的索引(event.ind)从所选艺术家 (event.artist) 中选择正确的值。

您所要求的是 this example in the matplotlib event guide 的一部分。

我只能引用它:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('click on points')

line, = ax.plot(np.random.rand(100), 'o', picker=5) # 5 points tolerance

def onpick(event):
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
points = tuple(zip(xdata[ind], ydata[ind]))
print('onpick points:', points)

fig.canvas.mpl_connect('pick_event', onpick)

plt.show()

关于python - pick_event 使用 matplotlib 获取点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45034489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com