Matplotlib:缩放后找出xlim和ylim

时间:2015-07-18 10:57:46

标签: python matplotlib

你肯定知道如何在放大后如何追踪我的身材的极限吗?我想准确地知道坐标,所以我可以用ax.set_xlimax.set_ylim重现这个数字。 我正在使用标准的qt4agg后端。

编辑:我知道我可以用光标查找下角和上角的两个位置,但也许有正式的方法可以做到这一点?

2 个答案:

答案 0 :(得分:22)

matplotlib有一个事件处理API,您可以使用它来挂接您所指的行为。 Event Handling页面概述了事件API,并在Axes页面上(非常)简要提及了x和y限制事件。

在您的方案中,您希望在Axes对象的xlim_changedylim_changed事件中注册回调函数。只要用户缩放或移动视口,就会调用这些函数。

这是一个最低限度的工作示例:

import matplotlib.pyplot as plt

#
# Some toy data
x_seq = [x / 100.0 for x in xrange(1, 100)]
y_seq = [x**2 for x in x_seq]

#
# Scatter plot
fig, ax = plt.subplots(1, 1)
ax.scatter(x_seq, y_seq)

#
# Declare and register callbacks
def on_xlims_change(axes):
    print "updated xlims: ", ax.get_xlim()

def on_ylims_change(axes):
    print "updated ylims: ", ax.get_ylim()

ax.callbacks.connect('xlim_changed', on_xlims_change)
ax.callbacks.connect('ylim_changed', on_ylims_change)

#
# Show
plt.show()

答案 1 :(得分:1)

print ax.get_xlim(), ax.get_ylim()