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以下では対数表示できないのでコマンドは無視される。