Maison > Article > développement back-end > Comment puis-je lisser les lignes dans Matplotlib pour une meilleure visualisation ?
Dans Matplotlib, les tracés connectent généralement les points de données avec des lignes droites. Bien que cela puisse être acceptable dans certains scénarios, le graphique résultant peut paraître irrégulier ou visuellement peu attrayant. Ce problème peut être résolu en lissant les lignes, ce qui donne une visualisation plus soignée et informative.
Pour lisser les lignes dans Matplotlib, vous pouvez exploiter les capacités de la bibliothèque SciPy. En appelant scipy.interpolate.spline, vous pouvez générer une fonction d'interpolation qui produira une courbe lisse passant par les points de données d'origine.
<code class="python">from scipy.interpolate import spline T = np.array([6, 7, 8, 9, 10, 11, 12]) power = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00]) xnew = np.linspace(T.min(), T.max(), 300) # Define the number of points for smoothing power_smooth = spline(T, power, xnew) plt.plot(xnew, power_smooth)</code>
Dans les versions SciPy 0.19.0 et ultérieures, spline est obsolète et remplacé par la classe BSpline. Pour obtenir des résultats similaires, vous pouvez utiliser le code suivant :
<code class="python">from scipy.interpolate import make_interp_spline, BSpline spl = make_interp_spline(T, power, k=3) # k=3 indicates cubic spline interpolation power_smooth = spl(xnew) plt.plot(xnew, power_smooth)</code>
Le tracé original avec des lignes droites et le tracé lissé peuvent être comparés pour plus de clarté :
[Avant](https://i.sstatic.net/dSLtt.png)
[Après](https://i.sstatic.net/olGAh.png)
Comme évident à partir des images, le lissage des lignes supprime les irrégularités, ce qui donne un graphique plus attrayant et informatif.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!