matplotlib xlim和ylim未设置限值,纵横比不相等[重复]

m2xkgtsf  于 2023-11-22  发布在  其他
关注(0)|答案(2)|浏览(157)

此问题在此处已有答案

How do I equalize the scales of the x-axis and y-axis?(5个答案)
How to set the axis limits(9个答案)
19天前关闭
下面是一个简单的python代码,它可以旋转一个椭圆。我想用x轴和y轴绘制相同的范围(从-3到+3),以直观地检查旋转是否符合预期。这对x轴有效,但对y轴无效(见下图)。我做错了什么?

import math
import numpy as np
import matplotlib.pyplot as plt

theta = np.arange(0, 2*np.pi, 0.01)

a = 1
b = 2

xpos = a*np.cos(theta)
ypos = b*np.sin(theta)

rotn = math.radians(45);

new_xpos = xpos*np.cos(rotn)+ypos*np.sin(rotn)
new_ypos = -xpos*np.sin(rotn)+ypos*np.cos(rotn)

plt.plot(xpos,ypos, 'b')
plt.plot(new_xpos,new_ypos, 'r')
plt.axis('equal')
plt.xlim=([-3, 3])
plt.ylim=([-3, 3])
plt.show()

字符串
x1c 0d1x的数据

2hh7jdfx

2hh7jdfx1#

这段代码有两个问题:
1.

plt.xlim=([-3, 3])
plt.ylim=([-3, 3])

字符串
需要

plt.xlim([-3, 3])
plt.ylim([-3, 3])


plt.axis('equal')行阻止了xlim/ylim设置。你必须从代码中删除这一行才能让xlim/ylim工作。

plt.axis('equal')

通过更改轴限制来设置等比例缩放(即,使圆为圆形)。这与ax.set_aspect('equal',adjustable='datalim')相同。* 在这种情况下可能不遵守显式数据限制。* https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axis.html

dbf7pr2w

dbf7pr2w2#

你需要改变:

plt.xlim=([-3, 3])
plt.ylim=([-3, 3])

字符串
改为:

plt.xlim([-3, 3])
plt.ylim([-3, 3])

相关问题