はじめに
matplotlibの3次元プロットについて、デモデータ(mplot3d Examples)を使って解説をする。最初は、2次元データを三次元空間にプロットする例について説明する。
コード

解説
モジュールのインポート
figの生成
figのaxにprojection=’3d’を適用することで3Dグラフが作れる。
Cos波のプロット
xsはnp.linspace(0, 1, 100)で0から1の100個の配列とする。
ysはサインカーブとする。np.piは円周率πとなる。
ax.plot(xs, ys, zs=0, zdir=’z’)でz=0のxy座標にプロットすることができる。
散布図のプロット
colorsの’g’は緑, ‘c’はシアン, ‘k’は黒, ‘m’はマゼンタとなる。
10 * len(colors)で10×colorsの長さ(=4)の計40個のランダムデータを生成する。
空のclistにcolorsの色を10個ずつ追加していく。colorsは4種なので40個(‘g’を10個,’c’を10個, ‘k’を10個, ‘m’を10個の順)のリストができあがる。
ax.scatterのc=c_listで各点の色を指定している。zdirで固定化する軸を選び、zsで固定化する軸の値を選ぶ。
凡例、軸範囲と軸ラベルの設定
ax.legend()でplotの際に設定したlabelを凡例として表示することができる。
zdirを変化させたときの図の変化
左の図は、zs=0,zdir=’x’でx=0のyz軸にプロットしている。
中央の図は、zs=1, zdir=’y’でy=1のxz軸にプロットしている。
右の図は、zs=0,zdir=’z’でz=0のxy軸にプロットしている。

視点の変更(azim)
プロットを見やすくするため、視点を変化させることができる。
azimを低下させると反時計回りに回転する。

視点の変更(elev)
elevを増加させると、上からの視点になる。

参考
mplot3d example code: 2dcollections3d_demo.py — Matplotlib 2.0.2 documentation
コメント