Matplotlib - 获取自动缩放的值

时间:2014-11-26 03:12:13

标签: python-2.7 matplotlib autoscaling

是否有可能读取由自动缩放设置的轴的刻度?

例如:

import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[1,2,3,4,5]
plt.plot(x,y)
plt.grid(True)

fig = plt.gcf()

plt.show()

我想获得x和y轴的比例。在这种情况下,它将是0.5。

1 个答案:

答案 0 :(得分:0)

绘图后,您可以

# calculate x scale
ax = fig.gca()
foo = ax.get_xmajorticklabels()
bar = [float(foo[i].get_text()) for i in range(len(foo))] 
scale_x = bar[1]-bar[0]

# calculate y scale
foo = ax.get_ymajorticklabels()
bar = [float(foo[i].get_text()) for i in range(len(foo))] 
scale_y = bar[1]-bar[0]

print scale_x, scale_y

这只适用于调用plt.show()之后(我不清楚,可能是针对SO的单独问题),但它有效。只需将这些行附加到您的脚本中即可。