2016-09-25 15 views
0

np.linspace()コマンドを使用して8つのデータポイントを補間したいと考えています。ここに私のコードがあります:1D 3次立方体と線形補間のパイソン

import numpy as np 
import matplotlib.pyplot as plt 
from scipy.interpolate import interp1d 


X = np.linspace(-2.5, 2.0, num=8, endpoint=True) 
Y = np.linspace(1, 44, num=44, endpoint=True) 

f = interp1d(X,Y) 
f2 = interp1d(X, Y, kind='cubic') 

Xnew = np.linspace(-2.5, 2.0, num=44, endpoint=True) 

plt.plot(X, Y, 'o', Xnew, f(Xnew), Xnew, f2(Xnew), '--' ) 
plt.legend(['data', 'linear', 'cubic'], loc='best') 
plt.show() 

答えて

3

ちょうど例外として、あなたは異なる長さの配列を提供しました。

は、ドキュメントのこの部分を見てみましょう:

NUM:int型、サンプルのオプション 数を生成するために。デフォルトは50です。負でない必要があります。

X = np.linspace(-2.5, 2.0, num=8, endpoint=True) 
Y = np.linspace(1, 44, num=44, endpoint=True) 

あなたは8 X値および44のY値を生成します。長さの不一致を考慮すると、(x、y)点を生成する明示的な方法はありません。 配列ごとに同じnumを選択すると、作業スクリプトが得られます。