【发布时间】:2021-07-29 12:52:40
【问题描述】:
亲爱的,我想重新计算写在我的图形刻度标签中的 x y 值,在我放大后,原点始终位于 (0,0) 并且显然值的相对距离x 和 y 轴保持不变。
我认为我需要在放大后跟踪我的数字的限制,而不是简单地从实际的 x y 刻度值中减去当前的 xmin 和 ymin。 我想这可以通过事件处理 API 来实现 Event handling 正如我在这里学到的: Source1
这也是我开始 MWE 的地方:
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):
a=axes.get_xlim()
print "updated xlims: ", axes.get_xlim()
return a
def on_ylims_change(axes):
a=axes.get_ylim()
print "updated ylims: ", axes.get_ylim()
return a
ax.callbacks.connect('xlim_changed', on_xlims_change)
ax.callbacks.connect('ylim_changed', on_ylims_change)
#
# Show
plt.show()
但我真的不知道我应该如何离开这里?我是否必须在 on_xlims_change 函数内进行计算并在那里更改 x 和 y 刻度标签?同样,我认为我真的只需要更改标签中给出的值,对吗?还是更容易更改坐标的实际值以使自动刻度标签仍然有效?
【问题讨论】:
标签: python matplotlib label