mplot3d.Axes3D – 3次元グラフの概要

概要

Pythonのライブラリーを使った3次元グラフ表示の概要をまとめる。

必要なライブラリは以下のように指定。

基本

立方体の8つの頂点を3次元空間内に表示する。

このコードの概要は以下の通り。

  1. 8つの頂点の座標の準備
    • x, y, zの座標ごとに配列で準備
  2. figureオブジェクトの取得
  3. axesオブジェクトの取得
  4. x,y,z軸の範囲を設定
    • 3次元用のメソッドaxes.set_xlim3d(min, max)などで指定
  5. 点の表示
    • axes.scatter(x, y, z)と3次元座標で指定

なお、上記の表示結果はマウスでドラッグして回転することができる。

曲面の表示

z = x2 + y2の関数の形状を、ワイヤーフレームと曲面で描く。

このコードの概要は以下の通り。

  1. 表示させる放物面の準備
    1. x,yの軸座標を生成
    2. numpy.meshgrid()関数で全格子点の座標を生成
    3. 格子点座標に対するzの値を計算
  2. x,y軸の軸目盛をhticksz軸の軸目盛をvticksとして準備
  3. figureの生成
  4. axesの1つ目を生成し、ワイヤーフレーム表示
    1. x,y,z軸の軸目盛をaxes.set_xticks()などのメソッドで設定
    2. ワイヤーフレームの描画ax1.plot_wireframe(x, y, z)
  5. axesの2つ目を生成し、曲面表示
    1. x,y,z軸の軸目盛をaxes.set_xticks()などのメソッドで設定
    2. 曲面の描画ax1.plot_surface(x, y, z)

コンターの表示

z = x2 + y2の関数の曲面を描き、z=0の面にコンターを描く。

このコードの手順は上の曲面の表示とほぼ同じで、上記と異なる点は以下の通り。

  • 2つの関数のコンターを比べるのに、xy平面上の点の原点からのL2ノルムとL1ノルムを使っている。
  • axes.contour()関数でコンターを描画している。
    • contour(x, y, z, offset)offsetは、コンターを表示する平面のzの値で指定

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です