matplotlib有一个事件处理API,您可以使用它来挂接您所指代的 *** 作。“事件处理”页面提供了事件API的概述,并且在“轴”页面上(非常)简短地提到了x和y极限事件。
该
Axes实例通过作为实例的callbacks属性支持回调CallbackRegistry。您可以连接的事件为xlim_changed,ylim_changed并且回调将在实例func(ax)所在的位置调用。ax``Axes
在您的方案中,您想在
Axes对象的
xlim_changed和
ylim_changed事件上注册回调函数。每当用户缩放或移动视口时,将调用这些函数。
这是一个最小的工作示例:
Python 2
import matplotlib.pyplot as plt## Some toy datax_seq = [x / 100.0 for x in xrange(1, 100)]y_seq = [x**2 for x in x_seq]## Scatter plotfig, ax = plt.subplots(1, 1)ax.scatter(x_seq, y_seq)## Declare and register callbacksdef on_xlims_change(event_ax): print "updated xlims: ", event_ax.get_xlim()def on_ylims_change(event_ax): print "updated ylims: ", event_ax.get_ylim()ax.callbacks.connect('xlim_changed', on_xlims_change)ax.callbacks.connect('ylim_changed', on_ylims_change)## Showplt.show()
Python 3
import matplotlib.pyplot as plt## Some toy datax_seq = [x / 100.0 for x in range(1, 100)]y_seq = [x**2 for x in x_seq]## Scatter plotfig, ax = plt.subplots(1, 1)ax.scatter(x_seq, y_seq)## Declare and register callbacksdef on_xlims_change(event_ax): print("updated xlims: ", event_ax.get_xlim())def on_ylims_change(event_ax): print("updated ylims: ", event_ax.get_ylim())ax.callbacks.connect('xlim_changed', on_xlims_change)ax.callbacks.connect('ylim_changed', on_ylims_change)## Showplt.show()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)