"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso suavizar linhas no Matplotlib para melhor visualização?

Como posso suavizar linhas no Matplotlib para melhor visualização?

Publicado em 2024-11-10
Navegar:629

How can I smooth lines in Matplotlib for better visualization?

Suavização de linhas no Matplotlib

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.

Usando a interpolação do SciPy

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)

Visualizando os efeitos de suavização

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.

Tutorial mais recente Mais>

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