注釈

この章は機能を説明している参考文献に過ぎません.mlabの紹介と mlab の機能との対話して組み立て方法については mlab: 3Dプロット用のPythonスクリプト の章を参照してください.

サンプルの実行方法については, mlabスクリプトの実行 のセクションを参照してください.

プロット機能

barchart

mayavi.mlab.barchart(*args, **kwargs)

ヒストグラムのようなプロットを行うために,垂直にスケールされた(バーのような)垂直グリフをプロットします.

この関数は,2-Dまたは3-Dで指定された位置のさまざまな入力を受け付けます.

関数シグネチャ

barchart(s, ...)
barchart(x, y, s, ...)
barchart(x, y, f, ...)
barchart(x, y, z, s, ...)
barchart(x, y, z, f, ...)

1つの位置引数だけが渡される場合は,ベクトルの長さを表す1-D,2-D,または3-D配列を指定できます.データ点の位置が配列のインデックスから差し引かれ,等間隔のデータセットが作成されます.

3つの位置引数(x,y,s)が渡された場合,最後の位置引数は配列s,または配列を返す呼び出し可能なfである必要があります.xとyは,sの値に対応する位置の2D座標です.

4つの位置引数 (x, y, z, s) が渡された場合,最初の3つはデータポイントの3D座標を与える配列で,最後のものはデータ値を与える配列を返す配列sまたは呼び出し可能なfです.

キーワード引数:

auto_scale:グリフの横方向スケーリングを自動的に計算するかどうか.これは,計算上コストがかかる可能性があります.ブール値でなければなりません.デフォルトはTrueです.
color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
lateral_scale:最も近いポイント間の距離を単位とする記号の横方向のスケール floatである必要があります.デフォルトは0.9
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
mask_points:指定した場合, 'mask_points' データ・ポイントのうちの1つのみが表示されます.このオプションは,大きなデータセットに表示される点の数を減らすのに役立ちます.整数またはNoneでなければなりません.
mode:bar を表すために使用する記号. '2dcircle' , '2dcross' , '2ddiamond' ,r '2dsquare' , '2dthick_cross' , '2dtriangle' , '2dvertex' , 'cube' のいずれかでなければなりません.デフォルトはcubeです.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
resolution:作成される記号の解像度.たとえば,球体の場合,これはthetaとphiに沿った分割数です.整数でなければなりません.デフォルトは8
scale_factor:字形に適用されるスケーリング.既定では,記号のサイズは作図単位で指定されます.floatでなければなりません.デフォルトは1.0
scale_mode:グリフ ('vector', 'scalar', か 'none') のスケーリングモード.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_barchart():
    """ Demo the bar chart plot with a 2D array.
    """
    s = np.abs(np.random.random((3, 3)))
    return barchart(s)

contour3d

mayavi.mlab.contour3d(*args, **kwargs)

引数として提供されるデータの3次元ボリュームの等値面をプロットします.

関数シグネチャ

contour3d(scalars, ...)
contour3d(x, y, z, scalars, ...)

scalarsは,グリッド上にデータを与える3Dのnumpy配列です.

4つの配列(x,y,z,スカラー)が渡された場合,最初の3つの配列は位置を示し,最後の配列はスカラー値を示します.x,y,z配列は, numpy.mgrid によって生成されたと想定されます.言い換えると,それらは3次元配列であり,3次元直交格子上に位置し,配列内の最も近い隣接と一致する空間内の最も近い隣接と規則的に間隔を置いて配置されています.この関数は,ポイントが規則的な間隔で配置されていると仮定してスカラーフィールドを作成します.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
contours:等高線の数またはリストを指定する整数またはリスト.値のリストを指定すると,要求された等高線のみが表示されます.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_contour3d():
    x, y, z = np.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]

    scalars = x * x * 0.5 + y * y + z * z * 2.0

    obj = contour3d(scalars, contours=4, transparent=True)
    return obj

contour_surf

mayavi.mlab.contour_surf(*args, **kwargs)

2D配列として提供される標高のグリッド間隔データを使用して,サーフェスの等高線をプロットします.

関数シグネチャ

contour_surf(s, ...)
contour_surf(x, y, s, ...)
contour_surf(x, y, f, ...)

sは標高マトリックス,2D配列です.プロットされる等高線は,sの値が等しい線分です.

xとyは1Dまたは( numpy.ogrid または numpy.mgrid によって返されるような)2D配列ですが,ポイントは直交グリッド上(おそらく不均一)に配置する必要があります.つまり,s配列内で同じインデックスを共有するすべてのポイントは,同じxまたはy値を持つ必要があります.任意のシェイプの位置配列(非直交グリッド)については,メッシュ関数を参照してください.

1つの配列sだけが渡された場合,xおよびy配列は配列のインデックスから作成されると仮定され,均一な間隔のデータセットが作成されます.

3つの位置引数が渡された場合,最後の位置引数は配列s,または配列を返す呼び出し可能なfである必要があります.xとyはsの値に対応する位置の座標を与えます.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
contours:等高線の数またはリストを指定する整数またはリスト.値のリストを指定すると,要求された等高線のみが表示されます.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.
warp_scale:ワープスカラーのスケール

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_contour_surf():
    """Test contour_surf on regularly spaced co-ordinates like MayaVi."""
    def f(x, y):
        sin, cos = np.sin, np.cos
        return sin(x + y) + sin(2 * x - y) + cos(3 * x + 4 * y)

    x, y = np.mgrid[-7.:7.05:0.1, -5.:5.05:0.05]
    s = contour_surf(x, y, f)
    return s

flow

mayavi.mlab.flow(*args, **kwargs)

ベクトルフィールドの流れに沿ってパーティクルの軌跡を作成します.

関数シグネチャ

flow(u, v, w, ...)
flow(x, y, z, u, v, w, ...)
flow(x, y, z, f, ...)

u,v,wはベクトルの成分を表すnumpy配列です.

3つの配列u,v,およびwだけが渡される場合,それらは3次元配列である必要があり,矢印の位置は (u, v, w) 配列内の対応するポイントのインデックスであると見なされます.

6つの配列(x, y, z, u, v, w)が渡された場合,最初の3つの配列は矢印の位置を示し,最後の3つの配列はコンポーネントを示します.x,y,z配列は, numpy.mgrid によって生成されたと想定されます.言い換えると,それらは3次元配列であり,3次元直交格子上に位置し,配列内の最も近い隣接と一致する空間内の最も近い隣接と規則的に間隔を置いて配置されています.この関数は,ポイントが一定の間隔で配置されていると仮定してベクトルフィールドを作成します.

4つの位置引数 (x, y, z, f) が渡された場合,最後の引数は,位置 (x, y, z) を指定してベクトルコンポーネント (u, v, w) を返す呼び出し可能なfである必要があります.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
integration_direction:
 積分方向. 'forward' , 'backward' ,または 'both' でなければなりません.デフォルトはforwardです.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
linetype:流線を表示するために使用される線状のオブジェクトのタイプ. 'line' , 'ribbon' ,または 'tube' でなければなりません.デフォルトはlineです.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
scalars:オプションのスカラーデータ.
seed_resolution:
 seedの解像度.seedポイントの数を指定します.整数またはNoneを指定する必要があります.
seed_scale:既定値の中心を基準にseed をスケーリングします.浮動小数点型である必要があります.デフォルトは1.0
seed_visible:シードの表示/非表示をコントロールします.ブール値でなければなりません.デフォルトはTrue
seedtype:流線のシードとして使用されるウィジェット. 'line' , 'plane' , 'point' ,または 'sphere' でなければなりません.デフォルトはsphereです.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_flow():
    x, y, z = np.mgrid[-4:4:40j, -4:4:40j, 0:4:20j]
    r = np.sqrt(x ** 2 + y ** 2 + z ** 2 + 0.1)
    u = y * np.sin(r) / r
    v = -x * np.sin(r) / r
    w = np.ones_like(z)*0.05
    obj = flow(u, v, w)
    return obj

imshow

mayavi.mlab.imshow(*args, **kwargs)

2D配列をイメージとして表示します.

関数シグネチャ

imshow(s, ...)

sは2次元配列です.sの値をカラーマップを使用してカラーにマップします.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
interpolate:イメージ内のピクセルが補間されるかどうか.ブール値でなければなりません.デフォルトはTrueです.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
name:作成されたvtkオブジェクトの名前.
opacity:イメージの不透明度.有効な値でなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_imshow():
    """ Use imshow to visualize a 2D 10x10 random array.
    """
    s = np.random.random((10, 10))
    return imshow(s, colormap='gist_earth')

mesh

mayavi.mlab.mesh(*args, **kwargs)

2D配列として提供されるグリッド間隔データを使用してサーフェスを印刷します.

関数シグネチャ

mesh(x, y, z, ...)

x, y, z はすべて同じシェイプの2D配列で,サーフェスの頂点の位置を表します.これらの点の間の接続性は,アレイ上の接続性によって示されます.

単純な構造(直交グリッドなど)の場合は,より効率的なデータ構造を作成するため, surf 関数の方が適しています.通常の暗黙的な接続ではなく,三角形によって定義されたメッシュについては, triangular_mesh 関数を参照してください.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
mask:一部のデータ・ポイントを非表示にするbooleanマスク配列.注:これはスカラーのカラーマッピングに基づいて動作し, color キーワードを使用してソリッドカラーを指定した場合は動作しません.
mask_points:指定した場合, 'mask_points' データ・ポイントのうちの1つのみが表示されます.このオプションは,大きなデータセットに表示される点の数を減らすのに役立ちます.整数またはNoneでなければなりません.
mode:glyphsのモード.2darrow' または '2dcircle' または '2dcross' または '2ddash' または '2ddiamond' または '2dhooked_arrow' または '2dsquare' または '2dthick_arrow' または '2dthick_cross' または '2dtriangle' または '2dvertex' または 'arrow' または 'axes' または 'cone' または 'cube' または 'cylinder' または 'point' または 'sphere' です.デフォルトはsphereです.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
representation:サーフェスに使用される表示タイプ. 'surface' , 'wireframe' , 'points' , 'mesh' ,または 'fancymesh' でなければなりません.デフォルトはsurfaceです.
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
resolution:作成される記号の解像度.たとえば,球体の場合,これはthetaとphiに沿った分割数です.整数でなければなりません.デフォルトは8
scalars:オプションのスカラーデータ.
scale_factor:fancy_meshモードで,頂点を表すために使用されるglyphのスケール係数.floatでなければなりません.デフォルトは0.05
scale_mode:グリフ ('vector', 'scalar', か 'none') のスケーリングモード.
transparent:アクターの不透明度をスカラーに依存させます.
tube_radius:メッシュモードでの線の表示に使用するチューブの半径.Noneの場合は,単純な線が使用されます.
tube_sides:線を表すために使用されるチューブの側面の数.整数でなければなりません.デフォルトは6です.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_mesh():
    """A very pretty picture of spherical harmonics translated from
    the octaviz example."""
    pi = np.pi
    cos = np.cos
    sin = np.sin
    dphi, dtheta = pi / 250.0, pi / 250.0
    [phi, theta] = np.mgrid[0:pi + dphi * 1.5:dphi,
                            0:2 * pi + dtheta * 1.5:dtheta]
    m0 = 4
    m1 = 3
    m2 = 2
    m3 = 3
    m4 = 6
    m5 = 2
    m6 = 6
    m7 = 4
    r = sin(m0 * phi) ** m1 + cos(m2 * phi) ** m3 + \
        sin(m4 * theta) ** m5 + cos(m6 * theta) ** m7
    x = r * sin(phi) * cos(theta)
    y = r * cos(phi)
    z = r * sin(phi) * sin(theta)

    return mesh(x, y, z, colormap="bone")

plot3d

mayavi.mlab.plot3d(*args, **kwargs)

点の間に線分を描画します.

関数シグネチャ

plot3d(x, y, z, ...)
plot3d(x, y, z, s, ...)

x,y,zおよびsは,同じシェイプの配列またはリストです.x,y,zは,線の連続する点の位置を示します.sは,各ポイントに関連付けられたオプションのスカラー値です.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
representation:サーフェスに使用される表示タイプ. 'surface' , 'wireframe' ,または 'points' でなければなりません.デフォルトはsurfaceです.
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
transparent:アクターの不透明度をスカラーに依存させます.
tube_radius:線の表示に使用するチューブの半径です.なしの場合は,単純な線が使用されます.
tube_sides:線を表すために使用されるチューブの側面の数.整数でなければなりません.デフォルトは6です.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_plot3d():
    """Generates a pretty set of lines."""
    n_mer, n_long = 6, 11
    dphi = np.pi / 1000.0
    phi = np.arange(0.0, 2 * np.pi + 0.5 * dphi, dphi)
    mu = phi * n_mer
    x = np.cos(mu) * (1 + np.cos(n_long * mu / n_mer) * 0.5)
    y = np.sin(mu) * (1 + np.cos(n_long * mu / n_mer) * 0.5)
    z = np.sin(n_long * mu / n_mer) * 0.5

    l = plot3d(x, y, z, np.sin(mu), tube_radius=0.025, colormap='Spectral')
    return l

points3d

mayavi.mlab.points3d(*args, **kwargs)

与えられたデータの位置に(点のような)記号をプロットします.

関数シグネチャ

points3d(x, y, z...)
points3d(x, y, z, s, ...)
points3d(x, y, z, f, ...)

x,y,zは,同じシェイプの配列またはリストで,ポイントの位置を表します.

x,y,zの3つの配列だけを指定した場合,すべてのポイントは同じサイズと色で描画されます.

さらに,x,y,zと同じシェイプの第四の配列sを渡して,各ポイントに関連付けられたスカラー値を与えることも,スカラー値を返す関数 f(x, y, z) を渡すこともできます.このスカラー値を使用して,ポイントのカラーとサイズを調整できます.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
mask_points:指定した場合, 'mask_points' データ・ポイントのうちの1つのみが表示されます.このオプションは,大きなデータセットに表示される点の数を減らすのに役立ちます.整数またはNoneでなければなりません.
mode:glyphsのモード.2darrow' または '2dcircle' または '2dcross' または '2ddash' または '2ddiamond' または '2dhooked_arrow' または '2dsquare' または '2dthick_arrow' または '2dthick_cross' または '2dtriangle' または '2dvertex' または 'arrow' または 'axes' または 'cone' または 'cube' または 'cylinder' または 'point' または 'sphere' です.デフォルトはsphereです.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
resolution:作成される記号の解像度.たとえば,球体の場合,これはthetaとphiに沿った分割数です.整数でなければなりません.デフォルトは8
scale_factor:glyphsに適用される拡大/縮小.デフォルトでは,字形のサイズは字形間の間隔から計算されます.浮動小数点数を指定して,作図単位での最大記号サイズを指定します.
scale_mode:グリフ ('vector', 'scalar', か 'none') のスケーリングモード.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_points3d():
    t = np.linspace(0, 4 * np.pi, 20)

    x = np.sin(2 * t)
    y = np.cos(t)
    z = np.cos(2 * t)
    s = 2 + np.sin(t)

    return points3d(x, y, z, s, colormap="copper", scale_factor=.25)

quiver3d

mayavi.mlab.quiver3d(*args, **kwargs)

与えられた位置でベクトルの方向を示す(矢印のような)記号をプロットします.

関数シグネチャ

quiver3d(u, v, w, ...)
quiver3d(x, y, z, u, v, w, ...)
quiver3d(x, y, z, f, ...)

u,v,wはベクトルの成分を表すnumpy配列です.

3つの配列u,v,およびwだけが渡される場合,それらは3次元配列である必要があり,矢印の位置は (u, v, w) 配列内の対応するポイントのインデックスであると見なされます.

6つの配列 (x, y, z, u, v, w) が渡された場合,最初の3つの配列は矢印の位置を示し,最後の3つの配列はコンポーネントを示します.形状は任意です.

4つの位置引数 (x, y, z, f) が渡された場合,最後の引数は,位置 (x, y, z) を指定してベクトルコンポーネント (u, v, w) を返す呼び出し可能なfである必要があります.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
mask_points:指定した場合, 'mask_points' データ・ポイントのうちの1つのみが表示されます.このオプションは,大きなデータセットに表示される点の数を減らすのに役立ちます.整数またはNoneでなければなりません.
mode:glyphsのモード.2darrow' または '2dcircle' または '2dcross' または '2ddash' または '2ddiamond' または '2dhooked_arrow' または '2dsquare' または '2dthick_arrow' または '2dthick_cross' または '2dtriangle' または '2dvertex' または 'arrow' または 'axes' または 'cone' または 'cube' または 'cylinder' または 'point' または 'sphere' です.デフォルトは2darrowです.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
resolution:作成される記号の解像度.たとえば,球体の場合,これはthetaとphiに沿った分割数です.整数でなければなりません.デフォルトは8
scalars:オプションのスカラーデータ.
scale_factor:glyphsに適用される拡大/縮小.デフォルトでは,字形のサイズは字形間の間隔から計算されます.浮動小数点数を指定して,作図単位での最大記号サイズを指定します.
scale_mode:グリフ ('vector', 'scalar', か 'none') のスケーリングモード.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_quiver3d():
    x, y, z = np.mgrid[-2:3, -2:3, -2:3]
    r = np.sqrt(x ** 2 + y ** 2 + z ** 4)
    u = y * np.sin(r) / (r + 0.001)
    v = -x * np.sin(r) / (r + 0.001)
    w = np.zeros_like(z)
    obj = quiver3d(x, y, z, u, v, w, line_width=3, scale_factor=1)
    return obj

set_picker_props

mayavi.mlab.set_picker_props(figure=None, pick_type='point_picker', tolerance=0.025, text_color=None)

surf

mayavi.mlab.surf(*args, **kwargs)

2D配列として提供される等間隔の標高データを使用して,サーフェスをプロットします.

関数シグネチャ

surf(s, ...)
surf(x, y, s, ...)
surf(x, y, f, ...)

sは標高マトリックスである2D配列で,最初の配列軸に沿ったインデックスはxの位置を表し,2番目の配列軸に沿ったインデックスはyの位置を表します.

xとyには, numpy.ogrid や numpy.mgrid から返されるような1Dまたは2D配列を指定できます. numpy.meshgrid から返される配列では,正しいインデックス順序を取得するために,最初にトランスポーズが必要です.点は,直交グリッド(おそらく不均一)上に配置する必要があります.つまり,s配列内で同じインデックスを共有するすべてのポイントは,同じxまたはy値を持つ必要があります.任意のシェイプの位置配列(非直交グリッド)については,メッシュ関数を参照してください.

1つの配列sだけが渡された場合,xおよびy配列は配列のインデックスから作成されると仮定され,均一な間隔のデータセットが作成されます.

3つの位置引数が渡された場合,最後の位置引数は配列s,または配列を返す呼び出し可能なfである必要があります.xとyはsの値に対応する位置の座標を与えます.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
mask:一部のデータ・ポイントを非表示にするbooleanマスク配列.注:これはスカラーのカラーマッピングに基づいて動作し, color キーワードを使用してソリッドカラーを指定した場合は動作しません.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
representation:サーフェスに使用される表示タイプ. 'surface' , 'wireframe' ,または 'points' でなければなりません.デフォルトはsurfaceです.
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.
warp_scale:Z軸のスケール(スカラーの値から歪められる).デフォルトでは,このスケールはfloat値です. 'auto' を指定すると,データの境界に関係なく,尺度が計算されて印刷のアスペクト比が向上します.エクステントに加えて warp_scale の値を指定すると, warp_scale によってワープスケールが決定され,プロットはz軸に沿って配置され,データの0がエクステントの中心に配置されます.明示的範囲を使用している場合,これは印刷の垂直尺度をコントロールする最適な方法です.スケールではなくサーフェスオブジェクトの範囲(または範囲)を制御する場合は,キーワード引数extentを参照してください.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_surf():
    """Test surf on regularly spaced co-ordinates like MayaVi."""
    def f(x, y):
        sin, cos = np.sin, np.cos
        return sin(x + y) + sin(2 * x - y) + cos(3 * x + 4 * y)

    x, y = np.mgrid[-7.:7.05:0.1, -5.:5.05:0.05]
    s = surf(x, y, f)
    #cs = contour_surf(x, y, f, contour_z=0)
    return s

triangular_mesh

mayavi.mlab.triangular_mesh(*args, **kwargs)

頂点の位置とそれらを接続する三角形によって定義されるメッシュを使用して,サーフェスをプロットします.

関数シグネチャ

triangular_mesh(x, y, z, triangles ...)

x,y,zは,サーフェスの頂点の位置を示す配列です.trianglesは,各三角形の頂点をリストしたトリプレット(または配列)のリストです.頂点は,位置配列内の外観番号によるインデックスです.

単純な構造(矩形グリッドなど)の場合は,より効率的なデータ構造が作成されるため,surf関数またはmesh関数の方が適しています.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
mask:一部のデータ・ポイントを非表示にするbooleanマスク配列.注:これはスカラーのカラーマッピングに基づいて動作し, color キーワードを使用してソリッドカラーを指定した場合は動作しません.
mask_points:指定した場合, 'mask_points' データ・ポイントのうちの1つのみが表示されます.このオプションは,大きなデータセットに表示される点の数を減らすのに役立ちます.整数またはNoneでなければなりません.
mode:glyphsのモード.2darrow' または '2dcircle' または '2dcross' または '2ddash' または '2ddiamond' または '2dhooked_arrow' または '2dsquare' または '2dthick_arrow' または '2dthick_cross' または '2dtriangle' または '2dvertex' または 'arrow' または 'axes' または 'cone' または 'cube' または 'cylinder' または 'point' または 'sphere' です.デフォルトはsphereです.
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
representation:サーフェスに使用される表示タイプ. 'surface' , 'wireframe' , 'points' , 'mesh' ,または 'fancymesh' でなければなりません.デフォルトはsurfaceです.
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
resolution:作成される記号の解像度.たとえば,球体の場合,これはthetaとphiに沿った分割数です.整数でなければなりません.デフォルトは8
scalars:オプションのスカラーデータ.
scale_factor:fancy_meshモードで,頂点を表すために使用されるglyphのスケール係数.floatでなければなりません.デフォルトは0.05
scale_mode:グリフ ('vector', 'scalar', か 'none') のスケーリングモード.
transparent:アクターの不透明度をスカラーに依存させます.
tube_radius:メッシュモードでの線の表示に使用するチューブの半径.Noneの場合は,単純な線が使用されます.
tube_sides:線を表すために使用されるチューブの側面の数.整数でなければなりません.デフォルトは6です.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_triangular_mesh():
    """An example of a cone, ie a non-regular mesh defined by its
        triangles.
    """
    n = 8
    t = np.linspace(-np.pi, np.pi, n)
    z = np.exp(1j * t)
    x = z.real.copy()
    y = z.imag.copy()
    z = np.zeros_like(x)

    triangles = [(0, i, i + 1) for i in range(1, n)]
    x = np.r_[0, x]
    y = np.r_[0, y]
    z = np.r_[1, z]
    t = np.r_[0, t]

    return triangular_mesh(x, y, z, triangles, scalars=t)

volume_slice

mayavi.mlab.volume_slice(*args, **kwargs)

3次元ボリュームのデータを引数としてスライスしたインタラクティブなイメージプレーンをプロットします.

関数シグネチャ

volume_slice(scalars, ...)
volume_slice(x, y, z, scalars, ...)

scalarsは,グリッド上にデータを与える3Dのnumpy配列です.

4つの配列(x,y,z,スカラー)が渡された場合,最初の3つの配列は位置を示し,最後の配列はスカラー値を示します.x,y,z配列は, numpy.mgrid によって生成されたと想定されます.言い換えると,それらは3次元配列であり,3次元直交格子上に位置し,配列内の最も近い隣接と一致する空間内の最も近い隣接と規則的に間隔を置いて配置されています.この関数は,ポイントが規則的な間隔で配置されていると仮定してスカラーフィールドを作成します.

キーワード引数:

color:vtkオブジェクトの色.カラーマップを指定した場合,カラーマップを上書きします.これは0から1の範囲のfloatのトリプレット (1, 1, 1) として指定されます.
colormap:使用するカラーマップのタイプ.
extent:[xmin, xmax, ymin, ymax, zmin, zmax] デフォルトはx,y,z配列範囲です.作成したオブジェクトの範囲を変更します.
figure:入力する図.
line_width:使用されている場合,線の幅.floatでなければなりません.デフォルトは2.0
name:作成されたvtkオブジェクトの名前.
opacity:vtkオブジェクトの全体的な不透明度.floatでなければなりません.デフォルトは1.0
plane_opacity:平面アクターの不透明度.有効な値でなければなりません.デフォルトは1.0
plane_orientation:
 平面の方向は有効な値でなければなりません.デフォルトは x_axes
reset_zoom:シーンに新しく追加されたデータに合わせてズームをリセットします.既定値はTrueです.
slice_index:スライスされるイメージのインデックス.
transparent:アクターの不透明度をスカラーに依存させます.
vmax:vmaxを使用してカラーマップをスケールします.なしの場合,データの最大値が使用されます.
vmin:vminを使用してカラーマップをスケールします.なしの場合,データの最小値が使用されます.

(詳細については, ipython --gui=qt で実行するか,mayavi2インタラクティブシェルで実行してください. mlabスクリプトの実行 を参照してください.)

import numpy
from mayavi.mlab import *

def test_volume_slice():
    x, y, z = np.ogrid[-5:5:64j, -5:5:64j, -5:5:64j]

    scalars = x * x * 0.5 + y * y + z * z * 2.0

    obj = volume_slice(scalars, plane_orientation='x_axes')
    return obj