如何在python曲线拟合中绘制误差条?

2024-09-12 00:59:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算错误条并用python绘制它们。我是python绘图的初学者。有人能帮忙吗?我怎么能做到。 这是我的阴谋

enter image description here

这是我的密码!!字面上我想要斜率和截距,并拟合函数的偏差。谢谢

import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as mpl

""" Fitting Function"""
def func(x, a, b):
    y = a *np.exp(-1*b/x) 
    return y
data = np.loadtxt("S005_CP_0011_N20.dat", skiprows=0, dtype=np.float128)
xData, yData = np.hsplit(data,2)
x = xData[:,0]
y = yData[:,0]

popt, pcov = curve_fit(func, x, y, sigma = None)

fig1= mpl.figure(figsize=(8,6))
mpl.plot(x, func(x, *popt), label="Fit function")
mpl.plot(x, y, 'r.', markersize=10, label="data")

Tags: importdataplotasnp绘制labelfit
1条回答
网友
1楼 · 发布于 2024-09-12 00:59:04

该问题的第一部分是计算误差条没有计算错误条这回事,因为错误条表示每个数据点的准确性,因此,您不能仅使用已经计算的数据

例如,如果你正在绘制年龄与身高的对比图(只是一个任意的例子),那么你就有责任找出你的身高测量有多准确——通常这是通过多次测量的平均值来完成的

下一部分是绘制错误条。对于Matplotlib,这非常简单,因为您可以只使用plt.errorbar(x, y, yerr = error_array, fmt = 'o'),其中error_array是包含每个点的错误条高度的数组,而'o'只是错误条的格式—在本例中是垂直线。例如:

import matplotlib.pyplot as plt

X = sorted([35,12,58,43,27,39,68])                              # Age
Y = sorted([1.75, 1.32, 1.65, 1.49, 1.80, 1.67, 1.83])          # Height
error_array = [0.02, 0.1, 0.04, 0.03, 0.09, 0.12, 0.01]         # Error bar for height

fig, ax = plt.subplots()
plt.scatter(X, Y)
plt.errorbar(X, Y, yerr=error_array)

plt.show()

enter image description here

编辑:哦,我忘了提到的一件事是,必须对X数据进行排序,并使Y数据与该顺序相对应,这样才能得到有意义的折线图。使用Python中的sorted()inbuild函数执行此操作

相关问题 更多 >

    热门问题