散布図の例

MayaviのコアAPIを使用して分散ポイントをプロットする例.

このスクリプトは,ランダムスカラーデータを持つランダムポイントの束を作成し,ポイントの "scatter" プロットとして表示します.スクリプトは,次の方法を示します.

  1. tvtkとnumpyを使って簡単にデータセットを作成します.

  2. Mayaviで作成したデータセットを使用してビジュアル化します.

この例では,mlabのpoints3d関数( mayavi.mlab.points3d() )と同じ機能を実現していますが,オブジェクトを明示的に作成し,MayaviコアAPIを介してパイプラインエンジンに追加しています.mlabを使用する場合と比べて,この方法には,作成されるオブジェクトとそのライフサイクルをより詳細に制御できるという利点があります.

次のようにスクリプトを実行します.

$ mayavi2 -x scatter_plot.py

または,次のように実行することもできます.

$ python scatter_plot.py

Pythonソースコード: scatter_plot.py


# Author: Prabhu Ramachandran <prabhu@aero.iitb.ac.in>
# Copyright (c) 2007 Prabhu Ramachandran.
# License: BSD Style.

import numpy as np
from tvtk.api import tvtk
from mayavi.scripts import mayavi2


@mayavi2.standalone
def main():
    # Create some random points to view.
    pd = tvtk.PolyData()
    pd.points = np.random.random((1000, 3))
    verts = np.arange(0, 1000, 1)
    verts.shape = (1000, 1)
    pd.verts = verts
    pd.point_data.scalars = np.random.random(1000)
    pd.point_data.scalars.name = 'scalars'

    # Now visualize it using mayavi2.
    from mayavi.sources.vtk_data_source import VTKDataSource
    from mayavi.modules.outline import Outline
    from mayavi.modules.surface import Surface

    mayavi.new_scene()
    d = VTKDataSource()
    d.data = pd
    mayavi.add_source(d)
    mayavi.add_module(Outline())
    s = Surface()
    mayavi.add_module(s)
    s.actor.property.trait_set(representation='p', point_size=2)
    # You could also use glyphs to render the points via the Glyph module.

if __name__ == '__main__':
    main()