No Matplotlib, os gráficos normalmente conectam pontos de dados com linhas retas. Embora isso possa ser aceitável em determinados cenários, o gráfico resultante pode parecer irregular ou visualmente desagradável. Esse problema pode ser resolvido suavizando as linhas, resultando em uma visualização mais refinada e informativa.
Para suavizar linhas no Matplotlib, você pode aproveitar os recursos da biblioteca SciPy. Ao invocar scipy.interpolate.spline, você pode gerar uma função de interpolação que produzirá uma curva suave que passa pelos pontos de dados originais.
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)
Nas versões 0.19.0 e posteriores do SciPy, spline foi descontinuado e substituído pela classe BSpline. Para obter resultados semelhantes, você pode empregar o seguinte 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)
O gráfico original com linhas retas e o gráfico suavizado podem ser comparados para clareza:
[Antes](https://i.sstatic.net/dSLtt.png)
[Depois](https://i.sstatic.net/olGAh.png)
Como é evidente nas imagens, suavizar as linhas remove os irregularidades, resultando em um gráfico visualmente mais atraente e informativo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3