matplotlib导航工具栏pan&放大

时间:2014-03-22 07:37:20

标签: python-2.7 matplotlib zooming panning

在我的matplotlib图中,我有多个轴。我可以使用导航工具栏pan&放大每个轴。但我想知道哪些轴是平移或缩放的。如何获取该信息。此外,如果首先缩放这些轴然后使用“后退”按钮恢复,那么它将返回其初始状态,因此在这种情况下我不需要轴信息。

简而言之,我想要仅从初始状态修改轴的信息? Plz分享您的看法。

提前致谢。

1 个答案:

答案 0 :(得分:0)

工具栏使用内部堆栈跟踪其状态,但我不建议直接访问它。我很确定这被认为是非公开的api,可以随意打破。

相反,当你构建你的数字时,抓住轴的xlimylim。之后你可以循环fig.axes检查你的自己

lim_dict = dict()
for ax in fig.axes:
    lim_dict[ax] = (ax.get_xlim(), ax.get_ylim())

def ax_changed(ax):
    old_xlim, old_ylim = lim_dict[ax]
    return np.all(old_xlim == ax.get_xlim()) and np.all(old_ylim == ax.get_ylim())

changed_axes = [ax for ax in figs.axes if ax_changed(ax)]
not_changed_axes = [ax for ax in figs.axes if not ax_changed(ax)]