首页 > 解决方案 > 绘制实验数据的平滑曲线(Python)

问题描述

我的数据取自我使用plt.plot和绘制的实验plt.scatter。情节是从点到点的直线。

如何为我的数据绘制平滑曲线。我以前曾将curve_fit用于线性和二次方程,但想不出一种将这些数据拟合到多项式的方法。

我的代码是:

prob = scatter_prob(ip1, ips1, is1, iss1)
plt.plot(voltage1, prob)
plt.xlabel('Voltage (V)')
plt.ylabel('Probability of Electron Scattering')
plt.title('Graph of Voltage vs. Probability')
plt.scatter(voltage1, prob)
plt.annotate('Minimum Probability P = ' + str(probmin), xy = (vmin, probmin), xytext = (vmin +1, probmin),
             arrowprops=dict(facecolor='yellow', shrink = 0.05))
plt.grid(True)
plt.tight_layout()
plt.show()

我收到的图表图像在这里:

阴谋

prob、voltage1、ip1、is1、ips1 和 iss1 是 numpy 数组。scatter_prob 返回

1 - ((Ip1 * Iss1)/(Ips1 * Is1))

标签: numpymatplotlibscipycurve-fitting

解决方案


平滑曲线的最佳方法是使用 Savitzky-Golay 滤波器。这里有一个很好的例子。


推荐阅读