Maison > Article > développement back-end > Comment créer une ligne lisse dans un graphique PyPlot ?
Tracer une ligne lisse dans PyPlot
Problème :
Lors du traçage d'un graphique à l'aide de PyPlot , les lignes de connexion entre les points de données peuvent sembler rigides et discontinues. Cela peut être indésirable dans certains scénarios.
Question :
Comment lisser les lignes de connexion dans un graphe PyPlot ?
Solution :
Pour obtenir une ligne plus lisse, on peut utiliser la technique d'interpolation spline de scipy. Voici comment :
<code class="python">import matplotlib.pyplot as plt import numpy as np import scipy.interpolate 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]) # Create a dense array of points for interpolation xnew = np.linspace(T.min(), T.max(), 300) # Interpolate the data using a cubic spline power_smooth = scipy.interpolate.spline(T, power, xnew) # Plot the smoothed line plt.plot(xnew, power_smooth) plt.show()</code>
Remarque : La fonction 'spline' dans scipy est obsolète dans la version 0.19.0. Utilisez plutôt la classe 'BSpline'. Voici une version mise à jour :
<code class="python">from scipy.interpolate import make_interp_spline, BSpline # Create a dense array of points for interpolation xnew = np.linspace(T.min(), T.max(), 300) # Create a B-spline interpolation object spl = make_interp_spline(T, power, k=3) # type: BSpline # Evaluate the interpolation at the new points power_smooth = spl(xnew) # Plot the smoothed line plt.plot(xnew, power_smooth) plt.show()</code>
L'argument 'k' dans 'make_interp_spline' contrôle la douceur de la spline. Des valeurs plus élevées de « k » donnent des lignes plus lisses.
Le tracé résultant présentera une ligne de connexion lisse entre les points de données, fournissant une représentation plus attrayante visuellement des données.
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!