python - 从 motion_notify_event 获取当前轴

标签 python matplotlib

我有一个包含多个子图的图。每个子图都有不同的数据。我还捕获了 motion_notify_event,目的是在悬停时显示数据标签。如何从事件中捕获当前的子图轴?

import random
import matplotlib.pyplot as plt

def on_move(event):
    if event.inaxes is not None:
        # Which subplot am I hovering over?
        pass

fig = plt.figure()
ax1 = plt.subplot2grid((4, 4), (0, 0), colspan=3)
ax2 = plt.subplot2grid((4, 4), (1, 0), colspan=3, rowspan=3)
ax3 = plt.subplot2grid((4, 4), (1, 3), rowspan=3)

ax1.plot(random.sample(xrange(100), 10), random.sample(xrange(100), 10), 'ro')
ax2.plot(random.sample(xrange(100), 10), random.sample(xrange(100), 10), 'bo')
ax3.plot(random.sample(xrange(100), 10), random.sample(xrange(100), 10), 'go')

on_move_id = fig.canvas.mpl_connect('motion_notify_event', on_move)

plt.show()

最佳答案

eventLocationEvent 的实例, 因此 event.inaxes 已经包含子图轴。只需尝试:

def on_move(event):
    if event.inaxes is not None:
        x = event.xdata
        y = event.ydata
        event.inaxes.plot(x,y,'ro')
        event.canvas.draw()

关于python - 从 motion_notify_event 获取当前轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433989/

相关文章:

python - pip install 与 python3 -m pip install

python - Matplotlib,带有一个标签的多个不同标记的图例

python - matplotlib 中距离相关的着色

python - 我可以在 rcParams 中设置 spine 和 ticks 吗?

python - 仅针对图像的特定点计算相邻像素的平均像素强度,并将其存储在n维数组中

python - 计算 Pandas 时间序列上的每日事件

python - 我们如何删除重复单个字符的单词?

python - 抓取 mongodb 中的 URL 并使用抓取的文本更新记录

python - 如何固定弹球的运动方向并使其碰撞

python - Python 3 上的 Numpy