Montage habe ich eine Menge von Punkten pts
, die eine Schleife bilden und es sieht wie folgt aus:eine geschlossene Kurve auf eine Reihe von Punkten
Dies zu 31243002 etwas ähnlich ist, sondern Punkte setzen zwischen Paaren von Punkten, würde ich mag eine glatte Kurve durch die Punkte passen (Koordinaten am Ende der Frage gegeben werden), so habe ich versucht, etwas ähnlich wie scipy
Dokumentation auf Interpolation:
values = pts
tck = interpolate.splrep(values[:,0], values[:,1], s=1)
xnew = np.arange(2,7,0.01)
ynew = interpolate.splev(xnew, tck, der=0)
aber ich bekomme diese Fehlermeldung:
ValueError: Error on input data
Gibt es eine Möglichkeit, eine solche Anpassung zu finden?
Koordinaten der Punkte:
pts = array([[ 6.55525 , 3.05472 ],
[ 6.17284 , 2.802609],
[ 5.53946 , 2.649209],
[ 4.93053 , 2.444444],
[ 4.32544 , 2.318749],
[ 3.90982 , 2.2875 ],
[ 3.51294 , 2.221875],
[ 3.09107 , 2.29375 ],
[ 2.64013 , 2.4375 ],
[ 2.275444, 2.653124],
[ 2.137945, 3.26562 ],
[ 2.15982 , 3.84375 ],
[ 2.20982 , 4.31562 ],
[ 2.334704, 4.87873 ],
[ 2.314264, 5.5047 ],
[ 2.311709, 5.9135 ],
[ 2.29638 , 6.42961 ],
[ 2.619374, 6.75021 ],
[ 3.32448 , 6.66353 ],
[ 3.31582 , 5.68866 ],
[ 3.35159 , 5.17255 ],
[ 3.48482 , 4.73125 ],
[ 3.70669 , 4.51875 ],
[ 4.23639 , 4.58968 ],
[ 4.39592 , 4.94615 ],
[ 4.33527 , 5.33862 ],
[ 3.95968 , 5.61967 ],
[ 3.56366 , 5.73976 ],
[ 3.78818 , 6.55292 ],
[ 4.27712 , 6.8283 ],
[ 4.89532 , 6.78615 ],
[ 5.35334 , 6.72433 ],
[ 5.71583 , 6.54449 ],
[ 6.13452 , 6.46019 ],
[ 6.54478 , 6.26068 ],
[ 6.7873 , 5.74615 ],
[ 6.64086 , 5.25269 ],
[ 6.45649 , 4.86206 ],
[ 6.41586 , 4.46519 ],
[ 5.44711 , 4.26519 ],
[ 5.04087 , 4.10581 ],
[ 4.70013 , 3.67405 ],
[ 4.83482 , 3.4375 ],
[ 5.34086 , 3.43394 ],
[ 5.76392 , 3.55156 ],
[ 6.37056 , 3.8778 ],
[ 6.53116 , 3.47228 ]])
Sind Sie bereit, ein neues Paket/Framework zu installieren? Wenn Sie die Art von Anpassung sind, über die Sie sprechen, gibt es das [ROOT-Framework] (https://root.cern.ch) sowie eine Vielzahl anderer Anpassungsmöglichkeiten. Es sollte ziemlich einfach sein, das Beispiel [2D-Histogramm] (https://root.cern.ch/root/htmldoc/tutorials/fit/fit2dHist.C.html) an Ihre Daten in PyROOT anzupassen (die Python-Schnittstelle zu ROOT) welches die Python-Syntax anstelle des C++ - Interpreters verwendet. Wenn das etwas ist, was Sie nicht ablehnen, kann ich eine richtige Antwort und ein Beispiel veröffentlichen. – Matt
@Matt: Vielen Dank für Ihren Kommentar. Es macht mir nichts aus, ein neues Paket zu installieren, obwohl meine Sorge ist, dass die Ausgabe in 'matplotlib' verwendet werden kann (ich habe ein paar Bilder und möchte den gleichen Stil beibehalten). – Mahdi
Dies war anscheinend ein Anliegen für jemand anderen, da es einen [Beitrag über die Verwendung von Matplotlib w/ROOT] (http://www.rootpy.org/auto_examples/plotting/plot_matplotlib_hist.html) gab. ROOT ist ein sehr leistungsfähiges Werkzeug und ich würde es empfehlen, es auszuprobieren, es gibt viele großartige Funktionen für die Datenanalyse und -visualisierung. – Matt