[matplotlib 3D] 12. 3Dグラフに面グラフを並べて表示

matplotlib 3D

はじめに

matplotlibのmplot3dモジュールを使用すると、複数の3D面グラフを一つの図に配置して、データを効果的に比較・分析することができます。このテクニックは、異なるパラメータでのシミュレーション結果の比較や、時系列データの変化を視覚化する際に特に役立ちます。

コード

解説

モジュールのインポート

バージョン

データの生成

xsは0〜10の範囲にある51個の要素からなる配列、zsは[0,1,2,3]となります。

verts = []で空のリストを作成し、そこにデータを追加していきます。

ysはlen(xs)=51個のランダム値を持つ配列です。 verts.appendを使って関数(polygon_under_graph)から返される配列を追加していきます。 zsがrange(4)なので、このプロセスは4回繰り返されます。

関数polygon_under_graphは、最初と最後のy値を0に設定し、その間のデータをzipで取得します。 zipは(xlist, ylist)をひとまとめにする関数で、*を付けることでアンパックします。これにより、(x, y)の形式を要素として持つリストを作成できます。

3D面グラフの表示

PolyCollectionを使用してポリゴンを作成し、verts配列の各要素にfacecolorで色を設定します。

add_collection3dメソッドを利用すると、2次元データを軸方向にずらして複数配置できます。zs=0,1,2,3でzdir=xと指定した場合、vertsの各データはx=0, 1, 2, 3の位置にプロットされます。

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

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

6. まとめと応用例

複数の3D面グラフを並べて表示することで、データの比較や分析が容易になります。この技術は科学研究、エンジニアリング、データサイエンスなど様々な分野で活用できます。

応用例として、地形データの視覚化、機械学習モデルの結果比較、時系列データの変化分析などが挙げられます。プロットの配置やスタイルを工夫することで、より効果的なデータストーリーを伝えることができるでしょう。

最後に、matplotlibの3D機能は非常に柔軟で、さらに複雑な可視化も可能です。是非、自分のデータに合わせてカスタマイズしてみてください。

参考

Generate polygons to fill under 3D line graph — Matplotlib 3.1.2 documentation

コメント