Matplotlib - 鼠标悬停时的工具提示

1 投票
1 回答
2663 浏览
提问于 2025-04-18 10:09

我尝试了以下方法:

def onpick3(event):
        ind = event.ind
        print 'onpick3 scatter:'

fig.scatter(t, p, color='b', zorder=10, label='label', picker=True)
fig.legend(loc=fills_legend_pos[index])
fig.canvas.mpl_connect('pick_event', onpick3)

然后出现了这个错误:

AttributeError: 'AxesSubplot' object has no attribute 'canvas'

补充说明:fig是AxesSubplot类型,创建方式如下:

fig = plt.subplot2grid((i, i), (j, 0), rowspan=1, colspan=i)

有没有简单的方法可以在我的散点图上添加提示框?请注意,我想保持现在的框架,继续使用fig.scatter,因为这些散点是叠加在已有的图形上的。

1 个回答

2

subplot2grid() 这个函数会返回一个 Axes 对象,你可以通过它的 figure 属性来获取图形对象:

import pylab as pl
axes = pl.subplot2grid((2, 2), (0, 0), rowspan=1, colspan=1)
axes.figure.canvas.mpl_connect('pick_event', onpick3)

撰写回答