在我的 matplotlib 图中,我有多个轴。我可以在每个轴上使用导航工具栏平移和缩放。但我想知道哪些轴被平移或缩放。如何获取该信息。此外,如果该轴首先缩放然后使用“后退”按钮恢复,那么它会返回其初始状态,所以在这种情况下我不想要该轴信息。
简而言之,我想要仅从初始状态修改的轴信息?请分享你的观点。
提前致谢。
在我的 matplotlib 图中,我有多个轴。我可以在每个轴上使用导航工具栏平移和缩放。但我想知道哪些轴被平移或缩放。如何获取该信息。此外,如果该轴首先缩放然后使用“后退”按钮恢复,那么它会返回其初始状态,所以在这种情况下我不想要该轴信息。
简而言之,我想要仅从初始状态修改的轴信息?请分享你的观点。
提前致谢。
工具栏使用内部堆栈跟踪其状态,但我不建议直接访问它。我很确定这被认为是非公开的 api,可以随意破坏。
相反,当您构建图形时,请抓住轴的xlim
和ylim
。稍后您可以循环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)]