2017-06-01 42 views
0

变量转变我在相空间的烦人狭窄的轨道,看起来像这样: enter image description hereMatplotlib:为窄轨

我可以做什么样的变量转化在这种情况下,得到一个不错的圆形轨道? 我的代码是这样的:

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

的数据可以在这里找到 - link

+0

这是关系到数据或情节?你想更改数据吗?只绘制一个圆圈并忽略你不喜欢的数据会有什么不同? – ImportanceOfBeingErnest

回答

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