2016-07-21 20 views
-4

Ich habe eine Liste von Werten, die Y-Achse betrachtet werden kann. Die X-Achse ist der Index des Elements in der Liste.wie Numpy verwenden, um eine Funktion anzupassen und Bereich unter der Kurve

beispiels

Y =
642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 642,6 64 2,6 642,6 642,6 642,6 642,6 642,6

wenn ich diese Daten plotten es wie folgt aussehen:

Curve Plot

Ich möchte einen Weg finden, um die Funktion in einem Polynom erster Ordnung zu erhalten für diese Linie und die Fläche unter der Kurve.

+0

haben Sie eine einzelne Funktion oder zwei Funktionen für die grafische Darstellung wollen? Wie auch immer, Sie müssten die Funktionsreihenfolge – giosans

+0

angeben Ich brauche eine Funktion dafür. Auch in der ersten Reihenfolge. Vielen Dank –

Antwort

1

Sie können polyfit verwenden, um die Funktion zu finden, und trapz, um den Bereich mit trapezförmiger Regel zu berechnen.

import matplotlib.pyplot as plt 
import numpy as np 

Y = [403, 486, 585, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6, 642.6] 
X = range(len(Y)) 
Z = np.polyfit(X, Y, 1) 
A = np.trapz(Y,x=X) 

fig, ax = plt.subplots(figsize=(10,10)) 
ax.plot(X,Y) 
plt.hold() 
ax.plot(X,Z[1] + np.multiply(Z[0],X)) 

curve and fitcurve