Python 拟合图形以查找数据曲线的渐变
所以我有一堆数据,我需要找到它的梯度。数据的设置就像我有核金属丰度,它是一个星系中心的金属丰度(距离=0)和一堆不同星系在中心不同距离的金属丰度。我想找到一个通用梯度,所以我计划绘制所有数据,并寻找一条最佳拟合曲线。这个想法是金属丰度就是它的中心。所以我需要修正任何金属丰度梯度,使它返回正确的核金属丰度。我需要将任何梯度的偏移量修正为核金属丰度(当拟合单个星系时)或0(如果根据它们的核金属丰度移动所有元素并拟合整个样本)。 下面是我的数据示例Python 拟合图形以查找数据曲线的渐变,python,matplotlib,curve-fitting,data-fitting,hyperparameters,Python,Matplotlib,Curve Fitting,Data Fitting,Hyperparameters,所以我有一堆数据,我需要找到它的梯度。数据的设置就像我有核金属丰度,它是一个星系中心的金属丰度(距离=0)和一堆不同星系在中心不同距离的金属丰度。我想找到一个通用梯度,所以我计划绘制所有数据,并寻找一条最佳拟合曲线。这个想法是金属丰度就是它的中心。所以我需要修正任何金属丰度梯度,使它返回正确的核金属丰度。我需要将任何梯度的偏移量修正为核金属丰度(当拟合单个星系时)或0(如果根据它们的核金属丰度移动所有元素并拟合整个样本)。 下面是我的数据示例 NAME Metallicity Nucle
NAME Metallicity Nuclear Metallicity Distance
1990U - - -
1991ar 8.52 - 4.61
1996d 8.66 - 2.0295
1996aq 8.59 9.03 2.97297
1997B - - 8.24493
1999cn 8.69 - 16.71392
2005eo 8.49 9.23 10.25775
2005mf 8.83 9.05 7.2698
2006jc - 8.48 2.0295
2007uy 8.7 9 3.61248
2008D 8.86 9 9.59352
所以我基本上想要一个方程,比如金属丰度-核金属丰度=距离*梯度。
现在我正在使用一个非常简单的脚本,它只调用文本文件中的数据,然后使用matplotlib进行打印。我所困惑的是如何偏移图形,使核金属丰度为零,我可以得到一个普遍梯度。因为上面的方程使用了梯度,但我需要为它求解,我不知道该怎么做。有人知道如何使用超参数拟合图形吗?
请让我知道,如果你需要更多的信息和先进的感谢
编辑:
所以我想梯度的意思是一个最佳拟合线的方程。基本上,我在一个星系的中心有一个金属丰度,在一系列不同星系的中心距离有一个金属丰度,我需要用数据找到一个方程,所以如果我知道中心金属丰度和距离中心的距离,我可以把它插入到方程中,知道在那个点的金属丰度。因为目前所有的星系都有不同的金属丰度,所以我试图拟合所有的数据来找到梯度。这有意义吗?再次感谢 如果你试图拟合的方程是
Metallicity - Nuclear Metallicity = distance * gradient
如果数据位于名为df
的数据帧中,则让LHS=y,距离=x:
import numpy as np
#drop rows with nulls
df = df.dropna()
y = df['Metallicity'] - df['Nuclear Metallicity']
x = df['Distance']
#fit a degree-1 polynomial i.e. a line
intercept, gradient = np.polyfit(x,y,1)
print(intercept,gradient)
-0.0116381176987 -0.289543910605
如果你想拟合的方程是
Metallicity - Nuclear Metallicity = distance * gradient
如果数据位于名为df
的数据帧中,则让LHS=y,距离=x:
import numpy as np
#drop rows with nulls
df = df.dropna()
y = df['Metallicity'] - df['Nuclear Metallicity']
x = df['Distance']
#fit a degree-1 polynomial i.e. a line
intercept, gradient = np.polyfit(x,y,1)
print(intercept,gradient)
-0.0116381176987 -0.289543910605
您是否查看了
scipy.optimize.curve\u fit
或scipy
软件包?对于所有的拟合问题,我都强烈推荐它。你能给出梯度的定义吗?也许还有你对上面例子的预期结果?所以我添加了梯度的定义。此外,我还寻找了合适的软件包,但没有找到。非常感谢您让我了解scipy。我会查一下,看看是否有用。你有没有看一下scipy.optimize.curve\u fit
或scipy
软件包?对于所有的拟合问题,我都强烈推荐它。你能给出梯度的定义吗?也许还有你对上面例子的预期结果?所以我添加了梯度的定义。此外,我还寻找了合适的软件包,但没有找到。非常感谢您让我了解scipy。我会查一下看是否有用。