2017-06-01 2 views
0

Ich habe eine annoyingly enge Umlaufbahn im Phasenraum, der wie folgt aussieht: enter image description hereMatplotlib: Transformation von Variablen für enge Umlaufbahn

Welche Art von Transformation der Variablen kann ich einen schönen Kreisbahn in diesem Fall erhalten tun ? Mein Code ist dies:

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

Die Daten finden Sie hier - link

+0

Ist dies im Zusammenhang mit den Daten oder dem Grundstück? Möchten Sie die Daten ändern? Was wäre der Unterschied dazu, nur einen Kreis zu zeichnen und die Daten zu ignorieren, die du sowieso nicht magst? – ImportanceOfBeingErnest

Antwort

1

Ich bin mir nicht sicher, ob dies ist, was Sie nach. Sie können eine der beiden Koordinaten um einen Viertelkreis verschieben und auf die andere Koordinate normieren.

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