はじめに
interpolateのinterp2dにより、粗い2次元データを補間して微細な2次元データを生成することができる。ここでは、scipy.interpolateのinterp2dの使用方法について説明する。
コード


解説
モジュールのインポート
バージョン
データの作成
np.meshgridにより、2つの1次元データから2次元データを作成する。Zはその2次元データから作成するので2次元データとなる。
データの表示
imshowでヒートマップとして表示すると下のようになる。

3次元プロットで表示
データを3次元グラフで表示すると下のようになる。

interp2dによる補間
interpolate.interp2d(X, Y, Z, kind=’cubic’)のX,Yは座標の位置を表すデータで、Zは補間する元データとなる。kindは補間方法でcubicの場合は3次のスプラインで補間される。
補間データの作成
xnew,ynewを間隔の細かいデータとして、補間関数fにいれることで補間データを得ることができる。ここで、xnew,ynewは2次元データではなく、1次元のデータとする必要がある。
補間データの表示
補間後のデータをimshowで表示すると、下のように滑らかなヒートマップになる。

補間データを3Dグラフで表示
3次元グラフで表示すると下のように、滑らかなプロットとなる。

y=0の位置のデータを表示
y=0の位置のx,zデータについて、元データと補間データの両方を表示した結果は以下のようになる。

まとめの図
これまでに示した図をまとめて表示するとこのようになる。

補間方法を変化させた場合
kind=”linear”
1次の式で補間される。

kind=”quintic”
5次の式で補間される。

参考
interp2d — SciPy v1.15.1 Manual
コメント