Hoe een vloeiende curve in matplotlib te plotten


Vaak wilt u misschien een vloeiende curve in Matplotlib uitzetten voor een lijngrafiek. Gelukkig is dit eenvoudig te doen met behulp van de volgende SciPy-functies:

In deze tutorial wordt uitgelegd hoe u deze functies in de praktijk kunt gebruiken.

Voorbeeld: een vloeiende curve uitzetten in Matplotlib

De volgende code laat zien hoe u een eenvoudig lijndiagram maakt voor een set gegevens:

 import numpy as np
import matplotlib.pyplot as plt

#create data
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([4, 9, 12, 30, 45, 88, 140, 230])

#create line chart
plt. plot (x,y)
plt. show ()

Houd er rekening mee dat het lijndiagram niet helemaal vloeiend is, omdat de onderliggende gegevens geen vloeiende lijn volgen. We kunnen de volgende code gebruiken om een vloeiende curve voor deze gegevensset te maken:

 from scipy.interpolate import make_interp_spline, BSpline

#createdata
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([4, 9, 12, 30, 45, 88, 140, 230])

#define x as 200 equally spaced values between the min and max of original x 
xnew = np. linspace ( x.min (), x.max (), 200 ) 

#define spline
spl = make_interp_spline (x, y, k= 3 )
y_smooth = spl (xnew)

#create smooth line chart 
plt. plot (xnew, y_smooth)
plt. show ()

Vloeiende curve in Matplotlib

Merk op dat hoe hoger de graad die u gebruikt voor het k- argument, hoe “golvender” de curve zal zijn. Beschouw bijvoorbeeld de volgende grafiek met k=7 :

 from scipy.interpolate import make_interp_spline, BSpline

#createdata
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([4, 9, 12, 30, 45, 88, 140, 230])

#define x as 200 equally spaced values between the min and max of original x 
xnew = np. linspace ( x.min (), x.max (), 200 ) 

#define spline with degree k=7
spl = make_interp_spline (x, y, k= 7 )
y_smooth = spl (xnew)

#create smooth line chart 
plt. plot (xnew, y_smooth)
plt. show () 

Gladde gebogen spline in Matplotlib

Afhankelijk van hoe krom de lijn moet zijn, kunt u de waarde van k wijzigen.

Aanvullende bronnen

Hoe rasterlijnen op Matplotlib-plots worden weergegeven
Hoe teken uit Matplotlib-plots te verwijderen
Hoe Matplotlib-plots met logaritmische schalen te maken

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert