Matplotlib:窄轨道变量的变换

时间:2017-06-01 16:44:51

标签: python numpy matplotlib plot

我在相位空间中有一个令人讨厌的窄轨道,如下所示: enter image description here

在这种情况下,我可以采用什么样的变量转换才能得到漂亮的圆形轨道? 我的代码是这样的:

import numpy as np
import matplotlib.pylab as plt
x,y = np.loadtxt("data.txt").T
plt.plot(x,y)
plt.show()

可在此处找到数据 - link

1 个答案:

答案 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()

enter image description here