Ich versuche, eine Zeile in Matplotlib zu zeichnen. Ich suche nach der richtigen Art der Interpolation. Ich möchte so etwas wie
wo jede Zeile geglättet wird. Ich habe mehrere Kombinationen von scipy und matplotlib ausprobiert, wie zum Beispiel
%Vor%aber das beste Ergebnis, das ich bekomme, ist
Die Zeile repräsentiert eine steigende Variable . Es ist also eine falsche Darstellung. Was kann ich suchen?
Danke
Edit: Ich denke über die Implementierung einer Methode von mir selbst, aber ich weiß nicht, ob es bereits getan wurde .. Pseudocode ist der folgende
%Vor% Für diese Art von Graphen möchten Sie eine monotone Interpolation. Die PchipInterpolator
Klasse (auf die Sie sich beziehen können, indem Sie kürzer angeben alias pchip
) in scipy.interpolate kann verwendet werden:
Ergebnis:
Das Problem ist kein Anzeigeproblem. Es ist ein Interpolationsproblem. Sie interpolieren mit Spline-Funktionen. Das Auswählen der richtigen Interpolationsmethode hängt sehr von der Art der Daten ab, die Sie haben. Sie können nicht erwarten, eine Interpolationsfunktion zu haben, die sich unter allen Umständen richtig verhält (die Interpolation hat keine Möglichkeit zu wissen, dass Ihre Funktion zunimmt).
Es ist wichtig zu verstehen, dass die Interpolation nicht nur eine Linie für die Visualisierung ist. Es ist ein mathematisches Modell, das darstellt, wie das System sich verhält (das System, das die von Ihnen gemessenen Daten generiert). Verschiedene Arten von Interpolationen repräsentieren unterschiedliche Annahmen über das System.
Wenn Sie also wissen, dass Ihr System so ist, dass eine Variable nur zunehmen kann, sollten Sie ein passendes Modell einfügen (d. h. die entsprechende Interpolation verwenden). Wenn Sie Ihre Daten betrachten, sieht es so aus, als ob ein Polynom zweiten Grades oder eine Exponentialfunktion gut passen würde. Eine Loess-Anpassung (lokale Regression) funktioniert ebenfalls. Sie können entweder angepasste Funktionen wie numpy.polyfit () oder eine generische Kurvenanpassung mit scipy.optimize.curve_fit () verwenden. Wenn Sie weitere Kenntnisse über das System haben, sollten Sie es verwenden, um das passende Modell auszuwählen.
Tags und Links python matplotlib numpy scipy spline