Maison  >  Article  >  développement back-end  >  Comment puis-je lisser les lignes dans Matplotlib pour une meilleure visualisation ?

Comment puis-je lisser les lignes dans Matplotlib pour une meilleure visualisation ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 11:05:03887parcourir

How can I smooth lines in Matplotlib for better visualization?

Lissage des lignes dans Matplotlib

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.

Utilisation de l'interpolation de SciPy

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>

Visualisation des effets de lissage

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn