繁体   English   中英

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

[英]Labels show up interactively on click in python matplotlib

我正在绘制以下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_notify_event ),都要检查光标是否在其中一行上,如果是,(现在是快速破解/解决方案),则将该行的标签打印到命令行上。

使用工具提示可能是更好的方法,但这似乎需要特定于后端的解决方案(请参见例如https://stackoverflow.com/a/4620352/3581217

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM