作成したビジュアルオブジェクトの外観を変更する¶
色やサイズのバリエーションを追加する¶
- Color:
プロット関数によって作成されたオブジェクトの色は,関数の 'color' キーワード引数を使用して明示的に指定できます.このカラーは,作成されるすべてのオブジェクトに均一に適用されます.
ビジュアル化全体でカラーを変更する場合は,データポイントごとにスカラー情報を指定する必要があります.関数の中には,この情報を推測しようとするものがあります.これらのスカラーは,ベクトルを持つ関数の場合はベクトルのノルムを,意味のある関数の場合はz仰角をデフォルトとします.
surf()
やbarchart()
などです.このスカラー情報は,ルックアップテーブルのカラーマップまたはLUTを使用してカラーに変換されます.可能なコロンマップのリストは次のとおりです.
accent flag hot pubu set2 autumn gist_earth hsv pubugn set3 black-white gist_gray jet puor spectral blue-red gist_heat oranges purd spring blues gist_ncar orrd purples summer bone gist_rainbow paired rdbu winter brbg gist_stern pastel1 rdgy ylgnbu bugn gist_yarg pastel2 rdpu ylgn bupu gnbu pink rdylbu ylorbr cool gray piyg rdylgn ylorrd copper greens prgn reds dark2 greys prism set1
視覚化に最も適したカラーマップを選択する最も簡単な方法は,GUIを使用することです(次項記載).カラーマップを設定するダイアログは, Colors and legends ノードにあります.
カスタム定義のカラーマップを使用するには,当分の間, カスタムカラーマップの例 に示すように,特定のコードを記述する必要があります.
- 字形のサイズ:
スカラー情報は,さまざまな方法で表示することもできます.例えば,データポイントに配置された字形のサイズを調整するために使用できます.
注意:クランプ:相対スケーリングまたは絶対スケーリング ポイント間隔1のライン上に6つのポイントが配置されている場合:
x = [1, 2, 3, 4, 5, 6] y = [0, 0, 0, 0, 0, 0] z = y
このデータセットで0.5から1までのスカラーを表す場合は,次のようになります.
s = [.5, .6, .7, .8, .9, 1]
points3d()
を使ってデータセットを球体として表現し,スカラーを球体の直径にマッピングします.from mayavi import mlab pts = mlab.points3d(x, y, z, s)
デフォルトでは,球体の直径は 'clamped' ではありません.つまり,スカラーデータの最小値はNull直径として表され,最大値はポイント間の距離に比例します.スケーリングは相対的なものにすぎません.結果の図を参照してください.
この動作により,すべてのデータセットに可視ポイントが与えられますが,スカラーが指定された位置と同じ単位でグリフのサイズを表す場合には望ましくないことがあります.
この場合,希望のスケール係数を指定して,自動スケールをオフにする必要があります.
pts = mlab.points3d(x, y, z, s, scale_factor=1)
警告
以前のバージョンのMayavi(最大3.1 .0を含む)では,グリフは自動スケールされず,その結果,グリフが非常に小さいため,表示が空に見えることがあります.また,記号の最小直径は0に固定されるため,次のように指定しない限り,記号は絶対的に尺度変更されません.
pts.glyph.glyph.clamping = False
- 付加されたスカラーまたはベクトルのより多くの表現:
データにアタッチされたスカラーまたはベクトル情報を表す方法は他にもたくさんあります.例えば,スカラーデータを,例えば, WarpScalar フィルタを用いて,変位を 歪める ことができます.あるいはスカラーデータのノルムを, ExtractVectorNorm フィルタを用いた等表面を用いて可視化することができるスカラー成分を抽出することができます.
- 複数の数量を表示する:
iso-contoursまたはelevationを使用しながら,1つのスカラー量に関連するカラーを表示することができます.これは可能ですが,少し作業が必要です 原子軌道の例 を見てください.
単に1つの量で指定されたサイズの点を表示し,1秒ごとに色を表示する場合は,ベクトルのノルムを使用してサイズ情報を追加し,スカラーを使用して色情報を追加し,
quiver3d()
を作成して,対称グリフを選択し,スカラーを使用して色を表現します.x, y, z, s, c = np.random.random((5, 10)) pts = mlab.quiver3d(x, y, z, s, s, s, scalars=c, mode='sphere') pts.glyph.color_mode = 'color_by_scalar' # Finally, center the glyphs on the data point pts.glyph.glyph_source.glyph_source.center = [0, 0, 0]
オブジェクトの尺度と位置を変更する¶
各mlab関数は, (x, y, z) の範囲を設定することができるキーワード引数を取ります.これにより,異なる方向のスケーリングと中心のディスプレイスメントの両方を制御できます.この機能を使用する場合は,同じデータを表示する他のモジュールに同じエクステントを渡すと便利です.そうしないと,ディスプレイスメントとスケールは共有されません.
高さの値を変換して2D配列を表示する surf()
, contour_surf()
, および barchart()
関数も,垂直スケーリングを制御するために warp_scale パラメータを取ります.
オブジェクトのプロパティをインタラクティブに変更する¶
Mayavi,つまりmlabを使用すると,表示をインタラクティブに変更できます.
Mayaviパイプラインツリーを表示するには,フィギュアのツールバーにあるmayaviアイコンをクリックするか, show_pipeline()
mlabコマンドを使用します.このマニュアルの他の部分で説明しているように,このダイアログを使用して各オブジェクトをダブルクリックしてそのプロパティを編集することで表示を変更したり,パイプライン上のこのアイコンを使用するか,またはパイプライン内のオブジェクトを右クリックして表示されるメニューを使用して,新しいモジュールまたはフィルタを追加できます.
さらに,mlab関数が返すすべてのオブジェクトに対して, this_object.edit_traits()
と入力すると,オブジェクトのプロパティをインタラクティブに編集するためのダイアログが表示されます.このコマンドを入力してもダイアログが表示されない場合は, mlabスクリプトの実行 を参照してください.