Jak wykreślić gładką krzywą w matplotlib


Często możesz chcieć wykreślić gładką krzywą w Matplotlib dla wykresu liniowego. Na szczęście można to łatwo zrobić, korzystając z następujących funkcji SciPy:

W tym samouczku wyjaśniono, jak w praktyce korzystać z tych funkcji.

Przykład: wykreślanie gładkiej krzywej w Matplotlib

Poniższy kod pokazuje, jak utworzyć prosty wykres liniowy dla zestawu danych:

 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 ()

Należy pamiętać, że wykres liniowy nie jest całkowicie gładki, ponieważ dane leżące u jego podstaw nie przebiegają po gładkiej linii. Możemy użyć następującego kodu, aby utworzyć gładką krzywą dla tego zbioru danych:

 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 ()

Gładka krzywa w Matplotlib

Należy pamiętać, że im wyższy stopień argumentu k , tym bardziej „falista” będzie krzywa. Rozważmy na przykład następujący wykres z 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 () 

Gładki zakrzywiony splajn w Matplotlib

W zależności od tego, jak krzywizna ma być linia, możesz zmienić wartość k.

Dodatkowe zasoby

Jak wyświetlić linie siatki na wykresach Matplotlib
Jak usunąć znaczniki z wykresów Matplotlib
Jak tworzyć wykresy Matplotlib za pomocą skal logarytmicznych

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *