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

matplotlib 3D

 

はじめに

matplotlibのmplot3dで作成する3Dグラフで面グラフを並べて表示する。

コード

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

解説

データの生成

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)をひとまとめにするもので、*をつけることで戻している。そうすることで、(#, #)のかたちを要素としてもつリストを作成することができる。

3D面グラフの表示

PolyCollectionでポリゴンを作成し、vertの各配列にfacecolorで色を設定する。

add_collection3dにより、2次元データを軸をずらして複数配置する。zs=0,1,2,3でzdir=xなので、x=0, 1, 2, 3にvertsの各データがプロットされることになる。


参考

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

コメント