我有一个使用 matplotlib 生成的 2D 点图,上面有 750 个点。我试图使用 mpldatacursor 以便我可以将鼠标悬停在这些点上以确定数据点的标签(即 numpy 数组中的行/位置等)。
当我使用 mpldatacursor 时效果很好 - 但我只得到 x & y 坐标。关于如何找到各个兴趣点的标签/来源的任何想法?我知道我可以绘制标签 - 但是有 750 个数据点,它非常混乱。
想法,萨尔。
我有一个使用 matplotlib 生成的 2D 点图,上面有 750 个点。我试图使用 mpldatacursor 以便我可以将鼠标悬停在这些点上以确定数据点的标签(即 numpy 数组中的行/位置等)。
当我使用 mpldatacursor 时效果很好 - 但我只得到 x & y 坐标。关于如何找到各个兴趣点的标签/来源的任何想法?我知道我可以绘制标签 - 但是有 750 个数据点,它非常混乱。
想法,萨尔。
您可以选择一个绘图点,将信息以数据坐标的形式传回。查看 matplotlib 的事件处理和选择指南以获取有关如何实现此目的的详细信息。
获得数据坐标后,您可以使用 numpy 找到相应的索引:
import numpy as np
# arr is the array you plot
[...code to plot/pick array...]
# datapt are the data coordinates you get back from the picking event
indices = np.argwhere(arr == datapt)
这种方法比 mpldatacursor 涉及更多的工作,但后者似乎没有提供几乎一样多的灵活性。