在 Matplotlib 中,绘图通常用直线连接数据点。虽然这在某些情况下可能是可以接受的,但生成的图表可能会出现锯齿状或视觉上没有吸引力。这个问题可以通过平滑线条来解决,从而获得更加精致和信息丰富的可视化效果。
要平滑 Matplotlib 中的线条,您可以利用 SciPy 库的功能。通过调用 scipy.interpolate.spline,您可以生成一个插值函数,该函数将生成一条穿过原始数据点的平滑曲线。
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)
在 SciPy 版本 0.19.0 及更高版本中,样条线已被弃用并由 BSpline 类取代。要获得类似的结果,您可以使用以下代码:
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)
为了清晰起见,可以比较带有直线的原始图和平滑后的图:
[之前]( https://i.sstatic.net/dSLtt.png)
[之后](https://i.sstatic.net/olGAh.png)
从图像中可以明显看出,平滑了线条消除锯齿状,从而产生更具视觉吸引力和信息量的图表。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3