numpy - 绘制实验数据的平滑曲线(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))
解决方案
平滑曲线的最佳方法是使用 Savitzky-Golay 滤波器。这里有一个很好的例子。
推荐阅读
- ruby-on-rails - 具有 has_many 的表单中的列组件不起作用
- java - 在 lambda java 中将变量更改出 lambda 表达式范围
- ios - Swift 编译错误
- regex - oracle regex_replace
- node.js - 如何直接从 angular component.html 调用节点 api
- proxy - 如何获取代理服务器ip
- java - 在 Parse 中注册显示错误:com.parse.ParseUser.signUpInBackground()' 在空对象引用上
- java - Camel-Undertow 不适用于 SSL 配置:
- android - 如何更改 com.mancj.materialsearchbar.MaterialSearchBar 中的文本颜色
- oracle - BEGIN END 块 PL/SQL 中的 WITH 子句行为