[SciPy] 11. interpolateのinterp2dによる2次元データの補間

matplotlib

はじめに

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

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

バージョン

データの作成

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次の式で補間される。

参考

scipy.interpolate.interp2d — SciPy v1.6.3 Reference Guide

コメント