如何在matplotlib.pyplot中关闭自动缩放

时间:2016-07-28 07:32:30

标签: python matplotlib

我在python中使用matplotlib.pyplot绘制我的数据。问题是它生成的图像似乎是自动调整的。如何将其关闭以便当我在(0,0)处绘制某些内容时,它将被固定在中心?

3 个答案:

答案 0 :(得分:6)

您需要autoscale功能:

from matplotlib import pyplot as plt

# Set the limits of the plot
plt.xlim(-1, 1)
plt.ylim(-1, 1)

# Don't mess with the limits!
plt.autoscale(False)

# Plot anything you want
plt.plot([0, 1])

答案 1 :(得分:0)

您可以使用xlim()ylim()来设置限制。如果你知道你的数据来自,例如X上的-10到20和Y上的-50到30,你可以这样做:

plt.xlim((-20, 20))
plt.ylim((-50, 50))

使0,0居中。

如果您的数据是动态的,您可以先尝试允许自动缩放,但然后将限制设置为包含:

xlim = plt.xlim()
max_xlim = max(map(abs, xlim))
plt.xlim((-max_xlim, max_xlim))
ylim = plt.ylim()
max_ylim = max(map(abs, ylim))
plt.ylim((-max_ylim, max_ylim))

答案 2 :(得分:0)

如果您想暂时关闭自动缩放以确保在绘制最后一块图形之前的某个时刻缩放保持原样,这可能会变得方便并且似乎比 {{1 }} 因为它实际上保留了限制,就像没有最后一个 plt.autoscale(False) 一样:

scatter

enter image description here enter image description here