据我所知,当用户与交互式matplotlib
图交互时(即通过点击,按下键等),触发Event
,如果需要,它可以链接到任意回调函数。
交互式matplotlib
图通常带有导航工具栏,其中包括缩放和橡皮筋选择等特定功能。我的问题是,是否有一种方法可以从后端观察这些事情,并在用户使用导航栏/鼠标执行这些操作时做出反应?
我已经浏览了matplotlib文档的事件处理页面上的事件名称列表,并查看了NavigationToolbar2
类的API参考,但我无法找到两者之间的任何连接。事件是我们要寻找的东西,还是有其他的方法来检测这些类型的交互?
自行解决。除了"事件处理"中显示的事件类型和fig.canvas.mpl_connect()
语法之外您还可以将回调函数与Axes
实例直接关联,这种方式可以使用一些不同类型的事件作为触发器。Axes
类的API引用是这样说的:
Axes
实例通过一个属于CallbackRegistry
实例的callback属性支持回调。您可以连接的事件是'xlim_changed'和'ylim_changed',回调将被调用func(ax)其中ax是Axes
实例。
…然后将这些轴事件连接到现有轴实例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轴的变化。