Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:为线性拟合添加错误线/阴影区域?_Python_Pandas_Numpy_Dataframe_Scipy - Fatal编程技术网

Python:为线性拟合添加错误线/阴影区域?

Python:为线性拟合添加错误线/阴影区域?,python,pandas,numpy,dataframe,scipy,Python,Pandas,Numpy,Dataframe,Scipy,我有两列:R_nom=实际值,R_mes=测量值。 我有: 计算线性拟合 计算的%错误 计算机性病 我想使用以下工具进行日志打印: 测量值的分散(完成) 线性拟合(完成) 拟合线上方和下方的误差线表示我们期望的值。(待办事项) 这是我目前的代码: #@标题堆栈示例 从plotly.subplot导入make_子地块 导入plotly.graph_对象作为go 将matplotlib.pyplot作为plt导入 将numpy作为np导入 作为pd进口熊猫 R_Nom=[1001001001

我有两列:R_nom=实际值,R_mes=测量值。 我有:

  • 计算线性拟合
  • 计算的%错误
  • 计算机性病
我想使用以下工具进行日志打印:

  • 测量值的分散(完成)
  • 线性拟合(完成)
  • 拟合线上方和下方的误差线表示我们期望的值。(待办事项)
这是我目前的代码:

#@标题堆栈示例
从plotly.subplot导入make_子地块
导入plotly.graph_对象作为go
将matplotlib.pyplot作为plt导入
将numpy作为np导入
作为pd进口熊猫
R_Nom=[1001001001005005005008008001200120012001200120055055005500]
R_Mes=[10210198975175174924908258112790125012401212111751153556005574544053905612]
df=pd.DataFrame({“R_-Nom”:R_-Nom,“R_-Mes”:R_-Mes})
#使用groupby查找平均值、最大值、最小值、标准差
mean=df.groupby('R_Nom')['R_Mes'].mean()
max_u=df.groupby('R_Nom')['R_Mes'].max()
min_uu=df.groupby('R_Nom')['R_Mes'].min()
std=df.groupby('R_Nom')['R_Mes'].std()
#对于错误%,但是我必须包括额外的步骤-可以如上所述编写吗?
df['Error_percentage']=abs((df[“R_Mes”]-df[“R_Nom”])/df[“R_Nom”])*100
分组的df=df.groupby(“R\u Nom”)
max_error=grouped_df['error_percentage'].max()
#将数据输出为用于打印的数据框
汇总=局部放电浓度({“平均值”:平均值,
“min”:min,
“max”:max,
“性病”:性病,
“最大错误%”:最大错误},轴=1)
总结
#拟合数据
x=np.log10(df['R_Nom'])
y=np.log10(df['R_Mes'])
x_fit=np.linspace(最小(x),最大(x),100)
模型=np.多边形拟合(x,y,1,full=真)
图=生成子图(规格=[{“次要”:True}]]
图1添加_轨迹(
go.Scatter(x=x_-fit,y=x_-fit*model[0][0]+model[0][1],name=“fit”),
次要_y=错误
)
图1添加_轨迹(
go.Scatter(x=x,y=y,name=“Fit”,mode=“markers”),
次要_y=错误
)
图1添加_轨迹(
go.Scatter(x=np.log10(summary.index),y=summary['max_error%',name=“error%”,
二次_y=真
)
图2(图3)
我已经手动添加了两条线,我的意思是,两条线包围了误差区域,不是直线,而是根据百分比或标准值在该精确R_Nom值处的变化而变化

第二,是否有其他方法可以用来估计我的数据的误差?R_平方等


最终目标是评估我能检测到的最小雷诺数变化是多少

你的意思是像or?看起来很好,唯一的问题是我的误差仅定义在我测量的值上(例如:100500)9我如何连接两者之间的点(例如270)?由于100时的erorr和方差与500时不同,可能需要对err(100)和err(500)进行加权平均??这现在是一个统计问题。我确信,scipy有一个函数,可以生成误差条的插值,以获得更平滑的非线性表示。我在中标记了
scipy
,也许其他人知道这样做的最佳(即,正确)方法。你的意思是像or?看起来很好,唯一的问题是我的误差仅定义在我测量它的值(例如:100500)9我如何连接两者之间的点(例如270)?由于100时的erorr和方差与500时不同,可能需要对err(100)和err(500)进行加权平均??这现在是一个统计问题。我确信,scipy有一个函数,可以生成误差条的插值,以获得更平滑的非线性表示。我在中标记了
scipy
,也许其他人知道这样做的最佳(即正确)方式。