Maison  >  Article  >  développement back-end  >  Comment créer une ligne lisse dans un graphique PyPlot ?

Comment créer une ligne lisse dans un graphique PyPlot ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 17:48:30597parcourir

How to Create a Smooth Line in a PyPlot Graph?

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!

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