在这种情况下,我可以采用什么样的变量转换才能得到漂亮的圆形轨道? 我的代码是这样的:
import numpy as np
import matplotlib.pylab as plt
x,y = np.loadtxt("data.txt").T
plt.plot(x,y)
plt.show()
可在此处找到数据 - link
答案 0 :(得分:1)
我不确定这是否是你所追求的。你可以做的是将两个坐标中的一个移动四分之一圆并标准化到另一个坐标。
import numpy as np
import matplotlib.pylab as plt
x,y = np.loadtxt("data/orbit.txt").T
y = np.roll(y, len(y)//4)
y = (y-y.mean())*((x.max()-x.min())/(y.max()-y.min())) +y.mean()
fig, (ax, ax2) = plt.subplots(ncols=2)
ax.set_aspect("equal")
ax.plot(x,y)
t = np.linspace(0,2*np.pi, len(x))
ax2.plot(t,x-x.mean())
ax2.plot(t,y-y.mean())
plt.show()