En Matplotlib, los gráficos normalmente conectan puntos de datos con líneas rectas. Si bien esto puede ser aceptable en ciertos escenarios, el gráfico resultante puede parecer irregular o visualmente poco atractivo. Este problema se puede solucionar suavizando las líneas, lo que da como resultado una visualización más pulida e informativa.
Para suavizar las líneas en Matplotlib, puede aprovechar las capacidades de la biblioteca SciPy. Al invocar scipy.interpolate.spline, puede generar una función de interpolación que producirá una curva suave que pasa por los puntos de datos originales.
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)
En las versiones 0.19.0 y posteriores de SciPy, spline ha quedado obsoleto y reemplazado por la clase BSpline. Para lograr resultados similares, puede emplear el siguiente código:
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)
El gráfico original con líneas rectas y el gráfico suavizado se pueden comparar para claridad:
[Antes](https://i.sstatic.net/dSLtt.png)
[Después](https://i.sstatic.net/olGAh.png)
Como se desprende de las imágenes, al suavizar las líneas se eliminan las irregularidades, lo que da como resultado un gráfico visualmente más atractivo e informativo.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3