标签在python matplotlib中单击时以交互方式显示

标签在python matplotlib中单击时以交互方式显示,python,numpy,matplotlib,Python,Numpy,Matplotlib,我正在绘制以下numpy数组(plotDataFirst),它有40 x 160个维度(包含双值) 我希望能够将鼠标悬停在绘图(绘制的40个绘图之一)上,并查看该特定绘图的标签 我有一个包含所有标签的数组(1x40)。有没有办法做到这一点?我不知道如何添加这种类型的交互式标签 plt.interactive(False) plt.plot(plotDataFirst) plt.show() 我不确定您希望如何显示标签(工具提示、图例、标题、标签等),但类似的内容可能是第一步: import n

我正在绘制以下numpy数组(plotDataFirst),它有40 x 160个维度(包含双值)

我希望能够将鼠标悬停在绘图(绘制的40个绘图之一)上,并查看该特定绘图的标签

我有一个包含所有标签的数组(1x40)。有没有办法做到这一点?我不知道如何添加这种类型的交互式标签

plt.interactive(False)
plt.plot(plotDataFirst)
plt.show()

我不确定您希望如何显示标签(工具提示、图例、标题、标签等),但类似的内容可能是第一步:

import numpy as np
import matplotlib.pylab as pl

pl.close('all')

def line_hover(event):
    ax = pl.gca()
    for line in ax.get_lines():
        if line.contains(event)[0]:
            print(line.get_label())

labels = ['line 1','line 2','line 3']

fig = pl.figure()
for i in range(len(labels)):
    pl.plot(np.arange(10), np.random.random(10), label=labels[i])
pl.legend(frameon=False)

fig.canvas.mpl_connect('motion_notify_event', line_hover)           
pl.show()
因此,基本上,对于每一次鼠标移动(
motion\u notify\u event
),检查光标是否在其中一行上,如果是,则(作为一种快速破解/解决方案),将该行的标签打印到命令行上

使用工具提示可能是一种更好的方法,但这似乎需要特定于后端的解决方案(请参见示例)

您可能需要查看和