はじめに
この記事では、matplotlibを使用して2次元データを3次元空間にプロットする方法について解説します。matplotlibの3Dプロット機能を活用して、データを視覚的に表現する手法を学びましょう。
コード

解説
モジュールのインポート
figの生成
figのaxに’projection=’3d’パラメータを適用することで、3次元グラフを作成できます。
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の値を大きくすると、グラフを上からの視点で見ることができます。

まとめ
この記事では、matplotlibを使用して2次元データを3次元空間に表現する基本的な方法を紹介しました。3Dプロットは複雑なデータを視覚的に理解するための強力なツールです。様々なプロットタイプやカスタマイズオプションを活用して、データをより効果的に表現してみましょう。
コメント