はじめに
interpolateのinterp2dにより、粗い2次元データを補間して微細な2次元データを生成することができる。ここでは、scipy.interpolateのinterp2dの使用方法について説明する。
コード
![](https://sabopy.com/wp/wp-content/uploads/2020/12/heatmap_before_interp2d-1-800x600.png)
![](https://sabopy.com/wp/wp-content/uploads/2020/12/heatmap_after_interp2d-800x600.jpg)
解説
モジュールのインポート
バージョン
データの作成
np.meshgridにより、2つの1次元データから2次元データを作成する。Zはその2次元データから作成するので2次元データとなる。
データの表示
imshowでヒートマップとして表示すると下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/heatmap_before_interp2d-1-800x600.png)
3次元プロットで表示
データを3次元グラフで表示すると下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/3dplot_before_interp2d-800x600.jpg)
interp2dによる補間
interpolate.interp2d(X, Y, Z, kind=’cubic’)のX,Yは座標の位置を表すデータで、Zは補間する元データとなる。kindは補間方法でcubicの場合は3次のスプラインで補間される。
補間データの作成
xnew,ynewを間隔の細かいデータとして、補間関数fにいれることで補間データを得ることができる。ここで、xnew,ynewは2次元データではなく、1次元のデータとする必要がある。
補間データの表示
補間後のデータをimshowで表示すると、下のように滑らかなヒートマップになる。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/heatmap_after_interp2d-800x600.jpg)
補間データを3Dグラフで表示
3次元グラフで表示すると下のように、滑らかなプロットとなる。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/2dplot_after_interp2d-800x600.jpg)
y=0の位置のデータを表示
y=0の位置のx,zデータについて、元データと補間データの両方を表示した結果は以下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/interp2d_x0-800x600.jpg)
まとめの図
これまでに示した図をまとめて表示するとこのようになる。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/interp2d_plots-800x600.jpg)
補間方法を変化させた場合
kind=”linear”
1次の式で補間される。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/heatmap_after_interp2d_linear-800x600.jpg)
kind=”quintic”
5次の式で補間される。
![](https://sabopy.com/wp/wp-content/uploads/2020/12/heatmap_after_interp2d_quintic-800x600.jpg)
参考
interp2d — SciPy v1.14.0 Manual
コメント