从python中的绘图中检索数据?

时间:2013-04-09 17:22:32

标签: python python-2.7

假设我有

t= [0,7,10,17,23,29,31]

f_t= [4,3,11,19,12,9,17]

我画了f_t vs t。

现在通过绘制这7个数据点,我想检索100个数据点并将它们保存在文本文件中。我该怎么办?

请注意,我并不是在询问情节的拟合情况;我知道两点之间的情节是线性的。

我在问什么如果我创建一个像t=np.arange(0,31,.1)这样的数组,那么f_t的相应数组与前一个图是一致的,即对于t = 0到t = 7之间的任何t,f_t将通过使用连接(0,4)和(7,3)的直线来确定,等等。

2 个答案:

答案 0 :(得分:2)

你应该使用线性回归,它给你一个直线公式,你可以在其中掌握任意数量的点。

如果这条线更像是一条曲线,那么你应该尝试进行更高程度的多项式回归。

即:

import pylab
import numpy

py_x =  [0,7,10,17,23,29,31]

py_y = [4,3,11,19,12,9,17] 

x = numpy.asarray(py_x)
y = numpy.asarray(py_y)

poly = numpy.polyfit(x,y,1) # 1 is the degree here. If you want curves, put 2, 3 or 5...

poly现在是可以用来计算其他点的多项式。

for z in range(100):
    print numpy.polyval(poly,z) #this returns the interpolated f(z)

答案 1 :(得分:1)

函数np.interp将在您的数据点之间进行线性插值:

f2 = np.interp(np.arange(0,31,.1), t, ft)