[英]What event is associated with zooming an interactive matplotlib plot?
据我了解,当用户与交互式matplotlib
plot 交互时(即通过单击、按键等),将触发一个Event
,如果需要,可以将其链接到任意回调 function 。
交互式matplotlib
图通常带有导航工具栏,其中包括缩放和橡皮筋选择等某些功能。 我的问题是,有没有办法从后端观察这些事情,并在用户使用导航栏/鼠标执行其中一项操作时做出反应?
我浏览了 matplotlib 文档的事件处理页面上的事件名称列表,并查看了NavigationToolbar2
class 的 API 参考,但我无法找到两者之间的任何联系。 事件甚至是要寻找的东西,还是有其他方法可以检测这些类型的交互?
自己解决了。 除了“事件处理”文档页面上显示的事件类型和fig.canvas.mpl_connect()
语法之外,您还可以将回调 function 直接与Axes
实例相关联,这种方式有一些不同类型的事件可以用作触发器。 Axes
class 的 API 参考是这样说的:
Axes
实例通过作为CallbackRegistry
实例的回调属性支持回调。 您可以连接到的事件是“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 轴的变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.