Home  >  Article  >  Backend Development  >  How can I smooth lines in Matplotlib for better visualization?

How can I smooth lines in Matplotlib for better visualization?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 11:05:03887browse

How can I smooth lines in Matplotlib for better visualization?

Smoothing Lines in Matplotlib

In Matplotlib, plots typically connect data points with straight lines. While this may be acceptable in certain scenarios, the resulting graph may appear jagged or visually unappealing. This issue can be addressed by smoothing the lines, resulting in a more polished and informative visualization.

Using SciPy's Interpolation

To smooth lines in Matplotlib, you can leverage the capabilities of the SciPy library. By invoking scipy.interpolate.spline, you can generate an interpolation function that will produce a smooth curve that passes through the original data points.

<code class="python">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)</code>

In SciPy versions 0.19.0 and later, spline has been deprecated and replaced by the BSpline class. To achieve similar results, you can employ the following code:

<code class="python">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)</code>

Visualizing the Smoothing Effects

The original plot with straight lines and the smoothed plot can be compared for clarity:

[Before](https://i.sstatic.net/dSLtt.png)
[After](https://i.sstatic.net/olGAh.png)

As evident from the images, smoothing the lines removes the jaggedness, resulting in a more visually appealing and informative graph.

The above is the detailed content of How can I smooth lines in Matplotlib for better visualization?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn