gpt4 book ai didi

matplotlib - 检测matplotlib Canvas 上的相对鼠标位置

转载 作者:行者123 更新时间:2023-12-04 12:42:52 24 4
gpt4 key购买 nike

我希望使用下面的 onmove 函数在 matplotlib 中创建一个自定义悬停 Action 。
将 x 和 event.x 中的现有数据点值转换为另一个坐标系(例如点)以便我可以检测 event.x 何时位于任何数据点的 p 点内的最佳方法是什么?我知道选择器事件,但不想使用它,因为它基于点击,而不是悬停。

fig = figure()
ax1 = subplot(111)
x = linspace(0,10,11)
y = x**2
ax1.plot(x,y)
fig.canvas.mpl_connect('motion_notify_event', onmove)
p = 5

def onmove(event):
if event.inaxes:
#Detect if mouse was moved within p points of any value in x

最佳答案

我回答了 related question the other day .

您的“点”(或设备)坐标转换取决于 x 和 y 的原始坐标系。如果 (x, y) 是轴上的数据值,ax ,然后您可以使用 ax.transData.transform_point([x, y]) 转换它们.如果 (x, y) 在轴坐标 (0-1) 中,则 ax.transAxes是你所追求的。

onmove 接收的事件将具有 x 的属性和 y这将是设备(像素)坐标中的 (x, y)

可以找到此信息的相关文档:http://matplotlib.sourceforge.net/users/transforms_tutorial.html

http://matplotlib.sourceforge.net/users/event_handling.html

此外,艺术家(线条、补丁等)有一个您可能感兴趣的 contains 方法:http://matplotlib.sourceforge.net/api/artist_api.html#matplotlib.artist.Artist.contains .

关于matplotlib - 检测matplotlib Canvas 上的相对鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8298245/

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