Python 学習:Mayavi・MLab・mesh

2014-08-06 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での、blogramのランクインカテゴリは、
3、3、1、1、1、 0、0、0、0、0(41)で、換算ポイント 66pt 。
「Firefox」今朝方、3位にアップ。
「化学業界」今朝方、5位にアップ。
・-・ - -・

さて、本文。

先月末(2014-07-29)の記事:
Python 学習:VTK を、Mayavi で

その後、
先週末(2014-08-02)の記事:
Python 学習:Mayavi・MLab
及び、
前回(2014-08-04)の記事:
VTK 学習:書式(file formats)
で、
“vtk”ファイルとそれに対応した“Python”プログラムで
「3Dグラフ」表示が出来た。

今度は、“matplotlib”の
Python 学習:Axes3D・surface 改
に相当する、
「Mayavi」を使った“Python”プログラムだけで出来ないか?


以前の記事で書いた、
本家ドキュメント「mayavi 4.3.1 documentation」の
MLab reference
で、学習した。


「mayavi.mlab.mesh」関数を使えば、
此までと同様に“Surface”描画が出来る。


結果的に、
こんな“Python”コードとなった:

# ========================= モジュール化 ==============================
# --------- 3軸の“ラベル”リスト、XYZ軸座標値(同形・行列) -----------
def Disp( XYZL, X, Y, Z ):
from mayavi import mlab # <=== これは必須
fig = mlab.figure( size=(800,600), bgcolor=(0,0,0) ) # 表示サイズと背景色
fig.scene.camera.azimuth( 200 ) # カメラ位置(角度)
mlab.mesh( X, Y, Z ) # <=== これ、最初に書くべき!
mlab.title( 'title' ) # タイトル
mlab.colorbar( orientation='vertical' ) # 凡例
mlab.orientation_axes() # 方向軸
mlab.outline() # 全体枠(直方体)
mlab.axes( nb_labels=5 )
mlab.xlabel( XYZL[0] )
mlab.ylabel( XYZL[1] )
mlab.zlabel( XYZL[2] )
mlab.show() # 表示

# ========================= 上記モジュール利用:データ準備 ============
import numpy as np
X = np.array( [ 1, 1, 3, 0, 1, 3 ] ).reshape(2,3)
Y = np.array( [ 3, 1, 0, 3, 1, 1 ] ).reshape(2,3)
Z = np.array( [ 0, 0, 0, 1, 1, 1 ] ).reshape(2,3)
XYZL = [ 'X', 'Y', 'Z' ]

# ========================= 上記モジュール呼出し ======================
Disp( XYZL, X, Y, Z )



初めは、エラーが出て悩んだ、・・・・・
填ったのは、
以前の記事:
Python 学習:Mayavi・MLab
と同じコード順で書いたコト。

だが、
実は、
  mlab.mesh( X, Y, Z ) # <=== これ、最初に書くべき!
この関数を先に呼ばないとエラーとなる。

これで、
“vtk”ファイル無しで、「Mayavi」による3D“Surface”プロットが出来る!


3軸の目盛刻みが一括指定である点が「matplotlib」より劣る?
でも、
“View the Mayavi pipeline”ボタンのクリック等で、
表示してからあれこれ変更出来る点は「Mayavi」の方が遙かに優れている。
特にワンクリックで“parallel projection”に変えられる点。

だが、残念(?)な点もある。
X,Y座標の目盛のスケールが値そのものに比例している。
(例えば X座標値が 50~100 で、Y座標値が 0.9~1.5 の様な場合だと、
  細長いものになって、非常に見づらい。)
この点は、どんな値の範囲であっても、
ほぼ立方体に成る「matplotlib」の方が扱いやすい!
(これも、見方によっては、宜しくない気もするんだが?)

本日はここまで。


Python 学習は続く???


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


140729
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク