M2Plot のCUIインターフェース =============================== ----------------------- 起動とコマンドの実行 ----------------------- 以下のように、M2Plot関数を実行する。 :: >>> import vis.M2Plot as m2p >>> p=m2p.M2Plot( dat ) ここで *dat* はElementContainerArrayかElementContainerMatrixである。(詳細は次項) この実行の結果、GUIが起動する。 また、 *p* はインスタンスと呼ばれるM2Plot関数の本体であり、この本体にピリオド+コマンド(メソッドと呼ばれる)をつけることで、コマンドを実行できる。 :: >>> p.SetXLabel( "Time-of-Flight" ) >>> p.ChangeMap( dat ) コマンドの詳細は後で述べる。 ------------------------ プロット用データ ------------------------ M2Plotの起動時や、コマンドの *NewPlot* , *ChangeMap* などでプロッタに流し込むデータは、基本的に万葉ライブラリの *ElementContainerArray* である。 *ElementContainerMatrix* を使用してもエラーにはならないが、そこに含まれる最初のElementContainerArrayのみが使用され、残りは無視される。 与えるデータには、2つのタイプ、直交型データと非弾性散乱粉末データとがある。 +--------------------+-------------------------------------------------+--------------------------------------------------------+ |データのタイプ |ElementContainerのデータ内容 |ElementContainerArray(-Matrix)に必要なヘッダ情報 | +====================+=================================================+========================================================+ |非弾性散乱粉末データ|ある位置の検出器部位(Pixel)のヒストグラムデータ|"Ei"(string) :非弾性散乱の入射エネルギー | | | +--------------------------------------------------------+ | | |"SAMPLETYPE"(string) : "Powder" | +--------------------+-------------------------------------------------+--------------------------------------------------------+ |直交型データ |ある位置XにおけるY方向のヒストグラムデータ |特になし。(非弾性散乱粉末データのヘッダ情報以外すべて)| +--------------------+-------------------------------------------------+--------------------------------------------------------+ また、直交型データの場合、X軸方向の区切りは、それぞれのElementContainerのヘッダに以下の情報を書き込むことで指定することができる。 +---------------------+-------------------------------------------------------------------------------------+ |ヘッダ情報 |意味 | +=====================+=====================================================================================+ |XRANGE(Double Vector)|そのElementContainerのデータのX軸上の範囲(初値,終値)。 | | |このヘッダがなければElementContainerArray中におけるElementContainerの順番を表示する。| +---------------------+-------------------------------------------------------------------------------------+ ------------------------ CUI機能(メソッド)一覧 ------------------------ 以下にM2Plotで使用出来るコマンドを示す。 +------------------------------------+-------------------------------+------------------------------------------------------------+ |機能 |コマンド(メソッド) | 引数 | +====================================+===============================+============================================================+ |新規プロッタを開く |NewPlot(data) or NewPlot() |data: ElementContainerArray, ElementContainerMatrix(注意1)| +------------------------------------+-------------------------------+------------------------------------------------------------+ |カレントプロッタを変更する |ChangePlot(n) |n:プロッタ番号 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |カレントプロッタ上のデータを変更する|ChangeMap(data) |data: ElementContainerArray, ElementContainerMatrix(注意1)| |(軸範囲などの設定は初期化) | | | +------------------------------------+-------------------------------+------------------------------------------------------------+ |カレントプロッタ上のデータを更新する|UpdateMap(data) |data: ElementContainerArray, ElementContainerMatrix(注意1)| |(軸範囲などの設定はそのまま) | | | +------------------------------------+-------------------------------+------------------------------------------------------------+ |強度のログ表示を変更する |SetLog(flag) |flag: True もしくは False | +------------------------------------+-------------------------------+------------------------------------------------------------+ |強度のスケール(範囲)を変更する |SetZScale( z0, z1 ) |z0,z1 : 強度範囲の最小値と最大値、省略すると自動設定 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |プロッタを閉じる |Close( n ) |n:プロッタ番号 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |X-Zグラフを作成する |SliceX( y, width, bin) |y:スライス範囲の中央のY値 | | | +------------------------------------------------------------+ | | |width:スライスの幅(Y±width) | | | +------------------------------------------------------------+ | | |bin:bin幅 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |Y-Zグラフを作成する |SliceY( x, width, bin) |x:スライスのY値 | | | +------------------------------------------------------------+ | | |width:スライスの幅(Y±width) | | | +------------------------------------------------------------+ | | |bin:bin幅 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |X-Zグラフの連続スライスを実行する |SliceXRange( y0, y1, num, bin )|y0:スライス範囲のYの初値 | | | +------------------------------------------------------------+ | | |y1:スライス範囲のYの終値 | | | +------------------------------------------------------------+ | | |num:領域の分割数 | | | +------------------------------------------------------------+ | | |bin:bin幅 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |Y-Zグラフの連続スライスを実行する |SliceXRange( x0, x1, num, bin )|x0:スライス範囲のXの初値 | | | +------------------------------------------------------------+ | | |x1:スライス範囲のXの終値 | | | +------------------------------------------------------------+ | | |num:領域の分割数 | | | +------------------------------------------------------------+ | | |bin:bin幅 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |X軸のスケールを対数にする |SetXLog( flag ) |flag : True ログスケール、False リニアスケール (注意2) | +------------------------------------+-------------------------------+------------------------------------------------------------+ |Y軸のスケールを対数にする |SetYLog( flag ) |flag : True ログスケール、False リニアスケール (注意2) | +------------------------------------+-------------------------------+------------------------------------------------------------+ |X軸のラベルを変更する |SetXLabel( xlabel ) |xlabel:X軸ラベル | +------------------------------------+-------------------------------+------------------------------------------------------------+ |Y軸のラベルを変更する |SetYLabel( ylabel ) |ylabel:Y軸ラベル | +------------------------------------+-------------------------------+------------------------------------------------------------+ |強度のラベルを変更する |SetZLabel( zlabel ) |zlabel:強度ラベル | +------------------------------------+-------------------------------+------------------------------------------------------------+ |メインタイトル(文字)を変更する |SetMainTitle( msg ) |msg:文字列 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |サブタイトル(文字)を変更する |SetMainTitle( msg ) |msg:文字列 | +------------------------------------+-------------------------------+------------------------------------------------------------+ |印刷する |Print() | | +------------------------------------+-------------------------------+------------------------------------------------------------+ |画像をファイルで保存する |Save( path ) |path:ファイル名称またはフルパスを示す文字列。 | | | |パス指定が無い場合はカレントディレクトリに保存。 | | | |ファイル名称またはフルパスに、日本語は使用不可。 | | | |拡張子: png, ps or eps | +------------------------------------+-------------------------------+------------------------------------------------------------+ (注意1) ElementContainerMatrixに含まれている最初のElementContainerArrayのみ表示され、残りは無視される。 (注意2) 0.3.4.1以降で実装。軸の値のどれかが0以下では対数表示できないのでコマンドは無視される。