【发布时间】:2021-02-18 15:21:58
【问题描述】:
我从使用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))
【问题讨论】:
-
我的回答是:不要。它给人一种连续函数的错误印象,你暗示了某种函数类型,而没有理由让这条曲线遵守这个函数,并且你掩盖了实际上可能是信号的噪声。 Excel 是我最讨厌的对象,因为它向人们介绍了实际上接近于科学欺诈的“平滑”图表。
标签: numpy matplotlib scipy curve-fitting