Python多重2D多项式拟合

2024-10-03 23:17:45 发布

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

我使用IPython笔记本应用程序。半年来我的天体物理学硕士论文。这是我第一次在这里提问,但很多时候我都从堆栈溢出中受益匪浅。所以,我已经搜索了互联网和堆栈溢出数据库,但没有找到解决问题的方法。在

我有一个数据点图,这些数据点形成了一条曲线,当它改变其倾斜度时,有两个“断点”。现在,我想根据曲线中的断点,在这个图中至少画出两个一阶拟合。在

我已经知道如何拟合一个一阶多项式,但不知道如何定义拟合范围。我的意思是告诉Python让一个适合范围[0,15]的数据点,另一个适合[15,30]中的数据点。在

我的代码如下:

plt.subplot(1,2,1)

scatter(res1_c18o[:,4], res1_c18o[:,3], c= res1_c18o[:,2], s=10)

plt.colorbar()

x= res1_c18o[:,4]

y=res1_c18o[:,3]

p = np.polyfit(x,y, 1)

pl.plot(x,p[0]*x+p[1])

就像上面提到的那样,这就建立了一个适合整个曲线的曲线。这是我写硕士论文的最后一件事。这些实际上是最后一章的最后情节;)

请与我分享你的想法,我将非常感谢你的帮助!在

非常感谢你, 贝蒂


Tags: 数据数据库应用程序堆栈ipython笔记本plt互联网
1条回答
网友
1楼 · 发布于 2024-10-03 23:17:45

首先选择适合的范围,在[0,15]中使用x。在

import numpy as np
xrange = x[np.logical_and(x>=0,x<=15)]
yrange = y[np.logical_and(x>=0,x<=15)]

p = np.polyfit(xrange,yrange, 1)

#plot the fit only in its range of validity:
plt.plot(xrange,p[0]*xrange+p[1])

你可以用第二个范围做同样的事情。在

相关问题 更多 >