How can I smooth lines in Matplotlib for better visualization?

Susan Sarandon
Release: 2024-11-02 11:05:03
Original
886 people have browsed it

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>
Copy after login

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>
Copy after login

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!

source:php.cn
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!