はじめに
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
コメント
[…] [matplotlib 3D] 3.等高線プロット3次元グラフ上に等高線、塗りつぶし等高線をプロットする例について説明する。sabopy.com2018.10.09 (adsbygoogle = window.adsbygoogle || []).push({}); […]