[matplotlib 3D] 3.等高線プロット

matplotlib 3D

はじめに

3次元グラフ上に等高線、塗りつぶし等高線をプロットする例について説明する。

モジュールのインポート

バージョン

3D等高線

コード & 解説

3Dグラフの設定

ax.set_box_aspect((1,1,1))とすることで縦横比の揃った図としている。

データの生成

等高線の表示

ax.contour3D(X, Y, Z)で3Dグラフに等高線を表示できる。levelsは線の数で20とすることでZを20のレベルにわけて各レベルに線を表示する。cmap=cm.cividisで色の設定ができる。(その他の色はこちら)

その他の設定項目は下記が詳しい。

mpl_toolkits.mplot3d.axes3d.Axes3D — Matplotlib 3.1.2 documentation

等高線のラベル

コード&解説

等高線ラベルは上記のように2Dグラフで表示できるが3Dグラフ上では表示できない。

リボン状等高線

コード&解説

extend3d=Trueでリボン状の等高線を表示できる。しかし、データの一部が表示されていない。

塗りつぶし等高線

コード&解説

contourf3Dで塗りつぶし等高線とすることができる。その他の設定項目は下記が詳しい。

mpl_toolkits.mplot3d.axes3d.Axes3D — Matplotlib 3.1.2 documentation

3D surface plot+2D等高線

コード&解説

zdirとoffsetを設定することで、各面に等高線を転写して表示することができる。

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

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

回転アニメーション

作製した図を回転させると以下のようになる。

回転アニメーションは以下の記事を参考にして作成した。

[matplotlib 3D] 14. 3Dグラフの回転アニメーション
matplotlib mplot3d のグラフの回転アニメーション

参考

Plot contour (level) curves in 3D — Matplotlib 3.9.2 documentation
Plot contour (level) curves in 3D using the extend3d option — Matplotlib 3.9.2 documentation
Project contour profiles onto a graph — Matplotlib 3.9.2 documentation
Filled contours — Matplotlib 3.9.2 documentation

コメント

  1. […] [matplotlib 3D] 3.等高線プロット3次元グラフ上に等高線、塗りつぶし等高線をプロットする例について説明する。sabopy.com2018.10.09 (adsbygoogle = window.adsbygoogle || []).push({}); […]