如何更改 x 轴和 y 轴的范围

21

我对matlibplot还不熟悉,我正在尝试绘制一个半径为1的圆,但我的x轴和y轴都从0到3,增量为0.25。目前,我已经绘制了图形和圆,但我的x轴和y轴只从0到1,所以在圆的上方、下方、左侧或右侧都没有多余的空间。以下是目前的代码:

    import numpy as np
    import matplotlib.pyplot as plt
    import scipy, pylab

    plt.axes()
    circle=plt.Circle((0, 0), radius=1, fc='w')
    plt.gca().add_patch(circle)
    plt.yticks(np.arange(0, 3, 0.25))
    plt.xticks(np.arange(0, 3, 0.25))
    plt.axis('scaled')
    plt.show()

我看过以下问题,但发现它们要么对我想要完成的任务来说有点太高级,要么就是离题了一点:

    http://stackoverflow.com/questions/27170139/how-to-change-the-range-of-my-x-axis-in-matplotlib

    https://dev59.com/12Eh5IYBdhLWcg3wPRWq

   https://dev59.com/2Ibca4cB1Zd3GeqPQgVX

   https://dev59.com/12Eh5IYBdhLWcg3wPRWq

现在我想要做的是,在保持我的圆在图表上相同位置的同时,将我的X和Y轴的范围从0-1增加到0-3,同时保持每个轴上的增量为0.25,使我能够绘制出全圆边缘的点,而不必担心圆的顶部、底部或任何一侧触及两个轴中的任何一个。我已经查阅了Matplotlib文档,但似乎找不到一个简单的逐步解释如何改变轴上间距的方法。对此有任何见解将会非常棒!先行致谢!
2个回答

37

要更改轴范围,您可以使用

plt.xlim([-3, 3])
plt.ylim([-3, 3])
你需要移除 plt.axis('scaled') 这一行代码,才能使它正常工作。
import numpy as np
import matplotlib.pyplot as plt
import scipy, pylab

plt.axes()
circle=plt.Circle((0, 0), radius=1, fc='w')
plt.gca().add_patch(circle)
plt.xlim([-3, 3])
plt.ylim([-3, 3])
plt.yticks(np.arange(-3, 3, 0.25))
plt.xticks(np.arange(-3, 3, 0.25))
plt.show()

我尝试了你建议的方法,虽然它确实改变了我的轴线位置,但似乎取消了我之前使用的比例尺,并将我的圆形位置改变到现在只能看到右上角的四分之一。 - busebd12
嗯,是的...如果您想要看到完整的圆形,您需要将轴从-3到+3 =>plt.xlim([-3, 3])plt.ylim([-3, 3])。这适用于我(请参见我的答案中的编辑)。但是,0.25的分辨率使得X轴上有些拥挤。 - Julien Spronck

2

在设置xlim和ylim之前,先使用first xticks和yticks。这将在设置限制之前创建一个数组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接