插值数据

时间:2013-10-25 07:50:35

标签: python graph numpy interpolation

您好我正在尝试获取以下插值函数。

data1 = [15000, 11000, 8000, 4000, +1000, +552, 0, -708, -8000, -8, 10000, +15000]
data2 = [10,9,8,7,6,5,4,0,3,2,1]

data1  data2
15000   10
11000    9
 8000    8
 4000    7
 1000    6
  552    5
   ..   ..

我尝试了以下代码,但图表是不变的,因为我使用了行间距作为其步骤。我怎样才能获得上面的表格。

x = np.linspace(-15000,15000,10) 
y = [10,9,8,7,6,5,4,3,2,1]

f = interpolate.interp1d(x,y)
f2 = interpolate.interp1d(x,y,kind='linear')
xnew = np.linspace(0,10,40)
plt.plot(x,y,'o',xnew,f(xnew),'-', xnew, f2(xnew),'--')
plt.show()

显示输出 enter image description here

2 个答案:

答案 0 :(得分:1)

也许这就是你要找的东西:

data1 = [15000, 11000, 8000, 4000, +1000, +552, 0, -708, -8000, -8, 10000, +15000]
data2 = [10, 9, 8, 7, 6, 5, 4, 0, 3, 2, 1]

print "{0:10}{1:10}".format("Data 1", "Data 2")
for var1, var2 in zip(data1, data2):
    print "{0:<10}{1:<10}".format(var1, var2)

正在运行example

上面的代码简单地使用zip组合了两个列表,这意味着,您可以将它们的值并排作为元组。引用文档:

  

此函数返回元组列表,其中第i个元组包含来自每个参数序列或迭代的第i个元素。返回的列表的长度被截断为最短参数序列的长度。当有多个参数长度相同时,zip()类似于map(),初始参数为None。使用单个序列参数,它返回一个1元组的列表。没有参数,它返回一个空列表。

这是一个控制台示例:

>> zip([2,3,11,3], [5,6,77,1])
[(2, 5), (3, 6), (11, 77), (3, 1)]

答案 1 :(得分:1)

您的意思是xnew = np.linspace(-15000,15000,40)吗?

您插入并正确绘制了所有内容,但插值的x轴范围为0到10,而初始x轴的范围为-15000到15000.因此,所有插值数据点都在(0,5.5)左右。您可以在图表上看到一个点。

相关问题