はじめに
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次の式で補間される。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
interp2d — SciPy v1.14.1 Manual
コメント