【问题标题】:Plotting a smooth curve for experimental data (Python)绘制实验数据的平滑曲线(Python)
【发布时间】:2021-02-18 15:21:58
【问题描述】:

我从使用plt.plotplt.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))

【问题讨论】:

  • 我的回答是:不要。它给人一种连续函数的错误印象,你暗示了某种函数类型,而没有理由让这条曲线遵守这个函数,并且你掩盖了实际上可能是信号的噪声。 Excel 是我最讨厌的对象,因为它向人们介绍了实际上接近于科学欺诈的“平滑”图表。

标签: numpy matplotlib scipy curve-fitting


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2017-06-10
    • 2017-01-14
    • 2015-11-18
    • 2023-03-09
    相关资源
    最近更新 更多