缩放交互式matplotlib图与什么事件相关?



据我所知,当用户与交互式matplotlib图交互时(即通过点击,按下键等),触发Event,如果需要,它可以链接到任意回调函数。

交互式matplotlib图通常带有导航工具栏,其中包括缩放和橡皮筋选择等特定功能。我的问题是,是否有一种方法可以从后端观察这些事情,并在用户使用导航栏/鼠标执行这些操作时做出反应?

我已经浏览了matplotlib文档的事件处理页面上的事件名称列表,并查看了NavigationToolbar2类的API参考,但我无法找到两者之间的任何连接。事件是我们要寻找的东西,还是有其他的方法来检测这些类型的交互?

自行解决。除了"事件处理"中显示的事件类型和fig.canvas.mpl_connect()语法之外您还可以将回调函数与Axes实例直接关联,这种方式可以使用一些不同类型的事件作为触发器。Axes类的API引用是这样说的:

Axes实例通过一个属于CallbackRegistry实例的callback属性支持回调。您可以连接的事件是'xlim_changed'和'ylim_changed',回调将被调用func(ax)其中axAxes实例。

…然后将这些轴事件连接到现有轴实例ax上的用户自定义回调func的语法可能看起来像这样:

def func(axes):
print("New axis y-limits are", axes.get_ylim())
cb_registry = ax.callbacks
cid = cb_registry.connect('ylim_changed', func)

同样的方法也可以用来观察x轴的变化。

最新更新