首页  >  文章  >  后端开发  >  如何在 PyPlot 图中创建平滑线?

如何在 PyPlot 图中创建平滑线?

Patricia Arquette
Patricia Arquette原创
2024-11-01 17:48:30597浏览

How to Create a Smooth Line in a PyPlot Graph?

在 PyPlot 中绘制平滑线

问题:

使用 PyPlot 绘制图形时,数据点之间的连接线可能会显得僵硬且不连续。在某些情况下,这可能是不可取的。

问题:

如何平滑 PyPlot 图中的连接线?

解决方案:

为了获得更平滑的线条,可以利用 scipy 的样条插值技术。具体方法如下:

<code class="python">import matplotlib.pyplot as plt
import numpy as np
import scipy.interpolate

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])

# Create a dense array of points for interpolation
xnew = np.linspace(T.min(), T.max(), 300)

# Interpolate the data using a cubic spline
power_smooth = scipy.interpolate.spline(T, power, xnew)

# Plot the smoothed line
plt.plot(xnew, power_smooth)
plt.show()</code>

注意: scipy 中的 'spline' 函数在 0.19.0 版本中已弃用。请改用“BSpline”类。这是更新版本:

<code class="python">from scipy.interpolate import make_interp_spline, BSpline

# Create a dense array of points for interpolation
xnew = np.linspace(T.min(), T.max(), 300)

# Create a B-spline interpolation object
spl = make_interp_spline(T, power, k=3)  # type: BSpline

# Evaluate the interpolation at the new points
power_smooth = spl(xnew)

# Plot the smoothed line
plt.plot(xnew, power_smooth)
plt.show()</code>

“make_interp_spline”中的“k”参数控制样条线的平滑度。 “k”值越高,线条越平滑。

生成的图将在数据点之间呈现平滑的连接线,从而提供更具视觉吸引力的数据表示。

以上是如何在 PyPlot 图中创建平滑线?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn