您好我正在尝试获取以下插值函数。
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()
显示输出
答案 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)左右。您可以在图表上看到一个点。