夕顔2次元可視化M2Plot+#

概要#

M2Plot+は、万葉ライブラリのデータコンテナである ElementContainerMatrixElementContainerArray などに収められたデータを2次元での可視化(プロット)を行うために使用されるソフトウェアである。主にMLFデータ処理環境 空蟬 のGUIソフトウェア(アプリケーション)から呼び出されて使用されることが多い。 なお2次元でのプロットというのは座標(X,Y)における強度(Intensity)を表示(contour map plot)することを意味する。

また表示するだけではなくX方向、Y方向をスライスし結果をプロット(MPlotによる)することも可能である。

なお、M2Plot+はPythonで書かれており、その起動はデータ処理で使用されるアプリケーション(SequenceEditorや非弾性可視化ソフトウェアなど)から必要に応じて呼び出されることが多い。一方コマンドラインからモジュールとして起動ことも可能である。

本章では、GUIによる使用方法と、CUIによる制御について記述する。

起動方法#

SequenceEditorやDetectMapアプリ、非弾性散乱用アプリ(VisualContM, D4Matシリーズなど)から呼び出されることが多い。アプリアイコンから単独で起動することも、コマンドラインで起動することも可能な環境もある。

終了方法#

メインパネルのウィンドウタイトルバーにあるCloseボタンを押す。

基本的な使い方#

他のアプリケーションからデータをプロットするために起動された直後は以下のような二つのパネルとウィンドウで構成される。Main Panelではデータをプロットし、それぞれの軸のスケールを指定したりできる。Plot Windowではその結果が表示される。

../../../../_images/M2Plot_About.png

Main Panel and Plot Window of M2Plot+#

表示直後は、せいぜいプロットの強度や軸を設定するくらいなので、メインパネルで必要な部分を見てみる。

メインパネル#

../../../../_images/M2Plot_MainPanel.png

Main Panel and its sections#

主に3つの部分に分かれており、図中の Plot Data Area はデータをプロットするのに必要な軸を選び、 Show ボタンでプロットを表示・更新する役割を持つ。

頻繁に使用するであろうプロットの強度や軸の範囲の設定は、 Axes Setting Area で行う。

../../../../_images/M2Plot_MP_AxesArea0.png

Axes Setting Area in Main Panel#

例えば、強度の範囲を変更したい場合は以下のようになる。

  1. Auto Scale のチェックボックスを外し

  2. Range の二つの欄に最小値と最大値を入れて

  3. Apply ボタンを押す

すると、プロットウィンドウの図が変わったことが確認できる。

同様に X ScaleY Scale も変更可能である。

強度や、軸方向のスケールをログにするには、 Log Scale のチェックを入れれば良い。

次にざっくりとプロットウィンドウを使用してみる。

プロットウィンドウ#

データはプロットウィンドで表示される。二次元データは 2D Plot Areaに表示される。プロットウィンドウはマウス操作で拡大・縮小・縦横比変更などが自由に行える。またこのサイズは数値で指定することも可能である( Set View Parameters ダイアログを使用 )

../../../../_images/M2Plot_PlotWindow0.png

Plot Window with slices.#

中央の2D Plot Areaにマウスカーソルを持っていき、適当な場所をクリックすると、上と右にある X-Intensity Slice 及び Y-Intensity Slice にその点を中心としたX方向及びY方向のラインの強度がそれぞれプロットされる。

同様にドラッグを行うと、ドラッグした領域に対して網掛けの選択領域が表示され、その範囲内のX方向及びY方向の強度がそれぞれプロットされる。

../../../../_images/M2Plot_PW_Selected.png

Plot Window with toggled selected area.#

このスライスしたデータを、1次元プロッタである MPlot を別ウィンドウとして起動して表示することも可能である。

上と右の X-Intensity Slice 及び Y-Intensity Slice 上で右クリックを行うと、プルダウンメニューが表示される。

../../../../_images/M2Plot_Main_RightClick0.png

Pulldown menu by clicking on X-Intensity or Y-Intensity slice area#

ここで Add To MPlot を選択すると新しくMPlotが起動し、そのスライスが表示される。

ツールバー#

ツールバーを使うと、プロットウィンドウに関する各種設定を行うことができる。

../../../../_images/M2Plot_PW_ToolBar.png

Tool Bar on Plot Window.#

ツールバーにはMPlotと共通の基本ツール部分と、M2Plot専用部分がある。ここではM2Plot+専用のツールを見ておく。

PW_Icon_0save

プロット画面をファイルに保存する。領域はTitle以下、Mouse Positionより上の領域である。

PW_Icon_1setting

M2Plot+の設定用ダイアログ( Set View Parameter )を開く。M2Plot+の見た目に関する全ての設定が行える。詳細は次章以降にて述べる。

PW_Icon_2sliceview

このボタンはトグル式になっており、押された状態だと X-Intensity Slicer 及び Y-Intensity Slice の領域が消される。

../../../../_images/M2Plot_PlotWindow1.png

Plot Window without slices.#

PW_Icon_3cursor

このボタンをオンにすると、2D Plot Area上のクリックやドラッグした時の領域が表示されるようになる。

../../../../_images/M2Plot_PW_Selected.png

Plot Window with toggled selected area.#

PW_Icon_4grid

このボタンをオンにすると、2D Plot Area上にグリッド線が表示される。グリッドに関する詳細な設定は Set View Parameter ダイアログにて行うことができる。

このほか、メインパネルの Fileメニューからテキストに保存なども可能である。

おおよそ、この程度のことができると可視化については大体のことが可能になると考えている。より詳細な設定項目などは次章以降を参照すること。

仕様の詳細#

Main Panel#

Main Panelは下図のように主に3つのエリアに分割できる。それぞれ以下に説明する。

../../../../_images/M2Plot_MainPanel.png

Main Panel and its sections#

Plot Data Area#

M2Plot+に与えられたデータから表示するための軸を設定し、プロットウィンドウにて表示するための設定である。ただし、他のアプリケーションからデータとともに起動した場合、このエリアは既に設定が終わっていることが多く、あらためて設定することは少ないだろう。

../../../../_images/M2Plot_MP_DataArea0.png

Data Setting Area in Main Panel#

M2Plot+で表示するデータコンテナは、プロットする時に使用するX軸の配列とY軸の配列、強度の配列が含まれている。それらを指定する設定である。

それぞれの配列は Key という名前でデータコンテナに登録されているので、 X axisY axis そして Intensity で対応する Key を選択する。またそれらに対してプロッタ上で表示される各軸の名前 ( Label ) と単位 ( Unit )も設定可能である。

また与えられたデータが2次元検出機のマップデータの場合は、このエリア下部の Summation range の欄もアクティブとなり、同様にKeyを設定できる。

このエリアにはボタンが二つある。

Openボタン

データコンテナがバイナリファイルとして保存されていた場合、このボタンを利用してデータを読み込むことができる。ただし、読み込めるファイルは万葉ライブラリの基本データファイルである ManyoBinary (拡張子が “.mdb”)のみである。

Showボタン

このボタンを押すと上記の X axis などの情報を用いで与えられたデータをプロットウィンドウにて表示される。

MoveToFrontボタン

Showボタンの右にあるボタンは、このMain Panelに対応するプロットウィンドウを画面の手前に持ってくるボタンである。複数のウィンドウが表示されていて埋もれてしまったときなどに用いられる。

Axes Area#

../../../../_images/M2Plot_MP_AxesArea0.png

Axes Setting Area in Main Panel#

Showボタンを押してプロットウィンドウが表示されているときにアクティブになるエリアである。ここではX軸、Y軸、強度のスケールを変更できる。それぞれの軸にて指定できるのは以下の項目である。これらのパラメータを指定した後、 Apply ボタンによりプロットウィンドウに反映される。いくつかの設定項目は変更直後に反映される。

Setting for Axes Area#

Auto Scale

強度や軸の範囲をデータの最小値と最大値で指定する

Range

強度や軸の範囲を入力する

Log Scale

強度や軸のスケールをログ表示にする

Smooth

強度分布に対してスムージングを行う。matplotlibのガウス関数にて行われる。 パラメータとしては window(作用幅)とtime(回数)が設定できる

Inversion

軸の最大値と最小値の位置を入れ替える

Slicing Area#

このエリアでは、プロットウィンドウで表示されたデータに対し、X軸方向やY軸方向にスライスを行ったり、対角線上にスライス、またスライスに対するいくつかの設定を行うことができる。これらの設定はタブによって切り替えられる。

Along X axis / Y axisタブ#

X軸方向もしくはY軸方向へのスライスを行うタブである。

../../../../_images/M2Plot_MP_SliceArea0.png

X axis Slice setting#

スライスの領域の指定は以下の二つがある。

X Value / Y Valueチェックボックス

スライスの中央値と幅で指定する。なお、 ToStep を指定することで、Value値を開始として To値まで Step値の刻みで連続スライスを行うことができる。

X Range / Y Rangeチェックボックス

スライスの範囲を最小値と最大値で指定する。なお、 delta を指定することで、最小値と最大値を delta値の刻みで連続スライスを行うことができる。

そのほかのチェックボックスやボタンの機能は以下のようになる。

Rebinチェックボックス

スライス結果の横軸のbinサイズを変更するときに用いる。

1D Plotボタン

MPlotにてスライス結果を表示する。すでにMPlotが起動している場合は、新しくスライスしたデータをMPlotに追加する。

Clearボタン

MPlot上に表示されているスライスデータを一旦クリアする。

2D Plotボタン

(未実装)

連続スライスについて#

Along X axis / Y axisタブでは、2種類のスライス指定方法(中央値と幅指定 or 範囲指定)に対して、それぞれ連続スライスが可能となっている。

../../../../_images/M2Plot_MP_SliceArea0_cont1.png

Example : Continuous Slice with given center value and width#

中央値と幅指定の場合の連続スライスでは、上記の図にある、2.0 +- 0.1 の部分が初期値(シングルスライスで使用する部分)となり、下段の To: の右欄(図中4.0)が連続スライスの最大中央値となる。 Step: の右欄(図中0.2)では連続スライスの移動幅(スライスとスライスの間隔)を指定する。

このTo: と Step: を入力して、[1D Plot]ボタンを押すことで、MPlotが起動し連続スライスの結果が表示される。

なお上図の例では、中央値が2.0から始まり4.0まで0.2刻みで変化することを意味する。すなわち中央値は2.0 -> 2.2 -> 2.4 -> … -> 4.0 と変化し、スライス幅は+-0.1で固定となる。結果、MPlot上には11プロット表示される。

../../../../_images/M2Plot_MP_SliceArea0_cont2.png

Example : Continuous Slice with given range#

一方、範囲指定のスライスの場合では、 通常のシングルスライスでの指定方法(スライス範囲の最小値と最大値)に加え、deltaの右欄にスライス幅を指定する。この場合、最小値がスライス幅に従って最大値まで増加する形となり、この例の場合、2.0-2.5, 2.5-3.0, 3.0-3.5, 3.5-4.0, 4.0-4.5 という5つのプロットとなる。

Diagonalタブ#

矩形方の指定範囲の対角線方向へのスライスを行うタブである。

../../../../_images/M2Plot_MP_SliceArea1.png

Diagonal Slice setting#

ここで使用されるパラメータは以下の通りである。

Parameters for Diagonal Slice#

Start

始点のX値とY値

End

終点のX値とY値

width

スライス線に垂直な幅

binning

スライス方向の分割幅

1D Plotボタン

上記の設定値で対角線スライスを行う。スライス結果の横軸はStart点(始点)からの距離であり、その分割数はbinning値で指定する。width値は対角線に垂直な方向の幅で、この範囲内にあるデータ点をスライスの強度計算に用いる。

2D Plotボタン

(未実装)

Settingsタブ#

スライスに関連する設定を行う。

../../../../_images/M2Plot_MP_SliceArea2.png

Settings for Slice#

Settings for Slice#

Integration

Average

スライス領域内の強度をbin毎に平均値をとりスライス強度とする

Summation

スライス領域内の強度をbin毎に足し合わせたものをスライスの強度とする

Set View Parametersダイアログ#

M2Plot+のほぼ全ての設定が行えるダイアログである。ToolBar の Set View Parameters を押す、もしくは Edit メニューから Set View Parameters を選択ことで表示される。

../../../../_images/M2Plot_SetViewParams0.png

Set View Parameter Dialog.#

以下に Set View Parameters ダイアログで設定できる項目を示す。

Axes Scale Area#

このダイアログの上半分では、X軸及びY軸に関する設定を行う。

../../../../_images/M2Plot_SVP_0AxesScale.png

Axes Scale Setting on Set View Parameter Dialog.#

Parameters on Axes Scale Setting Area#

Group

Items

Meanings

X,Y Scale

Label

プロット軸のラベルと単位を設定

Log Scale

軸のログスケールのオンオフ

Inversion

軸の方向の逆転

Auto Scale

軸の範囲を自動的に設定

Range

軸の範囲を指定

Thicks Label

Format

Auto Format

軸に付随する数値のフォーマットの自動化のオンオフ

Format

数値のフォーマットをFloating PointかExponentかを選ぶ

Precition

数値の桁数

Plot Settings#

このダイアログの下半分では、タイトルやグリッド、強度のカラーマップなどプロットの見栄えに関する設定を行うことができる。タブで設定項目を切り替え、下部にある Apply ボタンでプロットウィンドウに反映させる。

../../../../_images/M2Plot_SVP_1General.png

General tab on Set View Parameter Dialog.#

以下にそれぞれのタブにおける設定項目を示す。

General タブ#

タイトルやコメント、プロットウィンドウのサイズの数値指定などが可能である。設定したのちに画面下部にある Apply ボタンを押すとプロットウィンドウに反映される。

Title

プロットウィンドウ上部にあるTitle部分の文字を変更する。

Comment

プロットウィンドウwのコメント欄(Slice表示時は右上、非表示時はTitleの下)に表示する文字を設定する。Slice非表示の場合Commentの表示欄は左右に二等分されておいる。コメント文に ; (コロン)が含まれていると、そこで文章が分割され二つのコメント欄にそれぞれ表示される。

Main plot width / height

プロットウィンドウのサイズを数字で指定できる。 Current ボタンを押すと直前のプロットウィンドウのサイズが取り込まれる。

Auto Update

Plot Setting にある各種設定のうち、いくつかの設定において Auto Update を可能とするチェックボックス。これがオンの場合、例えばGridタブの各種設定は Apply ボタンを押さなくても即座に反映される。これがオンだと便利だが、ときに動作が緩慢になる時があるので注意。

Slice Mode

スライス時の強度計算を平均値を計算するか、単純な足し算(和)にするかを選択する。

Gridタブ#

2D Plot Areaで表示できるグリッドの設定を行う。

../../../../_images/M2Plot_SVP_2Grid.png

Grid tab on Set View Parameter Dialog.#

X軸方向に引くグリッド(Horizontal)とY軸方向に引くグリッド(Vertical)についてチェックボックスにて、表示のオン・オフが切り替えられる。 同時にそれぞれ下記のような設定が可能である。

Grid Settings#

Color

グリッド線の色

Style

グリッド線の種類 (“Solid”, “Dotted”, “Dashed”, “Dashdot” )

Width

グリッド線の幅

Interval

グリッド線の間隔、通常は空っぽで良い。 数値を入れるとその数値の間隔を開けてグリッドが引かれる

Color Mapタブ#

2D Plot Areaでの強度方向のカラーマップやスムージングなどの設定を行う。

../../../../_images/M2Plot_SVP_3ColorMap.png

Color Map tab on Set View Parameter Dialog.#

Color Map Tab parameters#

Color Map

プルダウンから使用するColor Mapを指定する。

Log Scale

強度方向のカラーマップをログスケールで表示する。

Smoothing

スムージングを行う。Windowはスムージングをかぶせる範囲、Timesはその回数である。

Auto Scale

プロットする強度の範囲を自動的に与える。

Range

Auto Scaleがオフの場合に強度の範囲を最小値と最大値で指定する。

なお、上限値のみを変更できる強度のスライドバーも存在し、使用可能である。

Ticks-Frameタブ#

2D Plot AreaでのTicks(軸の刻み)や、バックグランドの色についての設定を行う。

../../../../_images/M2Plot_SVP_4Ticks.png

Ticks-Frame tab on Set View Parameter Dialog.#

Ticks-Frame Tab parameters#

Mask Color

データ点にマスクが掛かっている場合の色を指定する

BG Color

データ点が存在しない場合の色を指定する

Add Ticks

軸の刻みを表示したい軸(上下左右)にチェックする

Ticks Color

軸の刻みの色を指定する(デフォルトは黒)

Major Ticks

軸の刻みの長さ(Length)と幅(Width)を指定する

Minor Ticks

表示したい場合チェックを入れ、刻みの長さと幅を指定する

Frame Line Width

プロットの枠線の太さを指定する

Fontタブ#

2D Plot Areaでのフォントのサイズと種類を設定する。

../../../../_images/M2Plot_SVP_5Font.png

Font control tab on 2D Plot Area of M2Plot+ main window#

Frame Tab parameters#

Title

タイトル

Comment

コメント

X Label

X軸のラベル(単位も同様)

Y Label

Y軸のラベル(単位も同様)

X Ticks Label

X軸の刻みの数値

Y Ticks Label

Y軸の刻みの数値

Colorbar Ticks Label

カラーバーの刻みの数値

GUI詳細仕様:OverPlot機能#

OverPlot機能はM2Plot+でのプロット上に、さらにラインをオーバープロットできる機能である。

../../../../_images/M2Plot_Main_OverPlot.png

Example an over-plotting function of M2Plot+#

ただし、一次元の線だけである。線の色や太さ、線種などは変更可能である。基本的な操作としては、以下のようになる。

  1. オーバープロットしたいテキストファイルを用意し

  2. オーバープロットダイアログから読み込む

読み込ませるファイルには2種類ある。

  1. MPlotのSaveAsで保存したテキストファイル

  2. 単純なテキスト

AはMPlotで出力したファイルである。Bのテキストファイルは下記のように1点を X値、Y値、必要ならError値を1行に書く形式である。

<X1>,<Y1>[,<Error1>]
<X2>,<Y2>[,<Error2>]
...

具体的には下記のように単純にXとYを並べるだけである。

0,0
0.5,8.0
1.0,22.0
1.5,8.0
2.0,22.0
2.5,10.0
3.0,18.0
3.5,14.0
4.0,15.0

次にこのテキストファイルを読み込むために、オーバープロットダイアログを呼び出す。 下記のようにプロットウィンドウのメニューから呼び出す。

../../../../_images/M2Plot_Main_MenuAnalyze.png

OverPlot item on Analyze menu#

結果として、下記のようなダイアログが開く。

../../../../_images/M2Plot_Dialog_OverPlot.png

OverPlot Dialog#

ここで、 Add File … ボタンを押して用意したテキストファイルを読み込むと、下記のように1行追加される。

../../../../_images/M2Plot_Dialog_OverPlot1.png

OverPlot Dialog after loading a text file#

行の先頭の Disp チェックボックスを利用すると表示・非表示が指定できる。同じ行には以下のような項目があるので、それぞれ設定が可能である。

Setting for over plotting line#

設定

意味

Disp

表示・非表示

Color

Style

線の種類(Line, Dots, …)

LW

線幅

Marker

マーカー

Size

マーカーのサイズ

Err

Y軸方向にエラーバー (あれば)

扱えるデータタイプ#

なお、M2PlotPlusで表示できるデータコンテナは以下のようになっている。

Available Data Type#

汎用2次元データ

ElementContainerArray

汎用的な2次元データ(X,Y,Intensity)である

ディテクターマップデータ

ElementContainerMatrix

ディテクターマップモードで動作するが一部機能が未実装

非弾性散乱パウダーデータ

非弾性散乱処理でパウダー処理を行なったデータ

CUI操作の概要#

M2Plot+はPythonのスクリプト上で動作させるためのCUIも準備されている。以下ではPythonインタプリタ(コマンドインターフェース)での使用を中心に述べる。

まず、M2Plot+のCUIモジュールである M2PlotPlusCui を読み込み、起動する。

>>> import uGao.M2PlotPlusCui as M2P
>>> p = M2P.M2PlotPlusCui()

あらかじめデータが作成されているなら、起動時に指定できる。参考例では ECA をデータとする。

>>> p = M2P.M2PlotPlusCui( ECA )

もし起動後にデータを与える場合やデータの変更を行う場合は以下のようなコマンドを用いる。

>>> p.ChangeData( ECA2 )

データを与えられたらプロッタを開く(GUIの Show ボタンと同じ機能)

>>> p.ShowData()

なお、データの軸を選択してプロットする場合(GUIのメインパネルの X axisY axis の設定)は以下のように指定する。

# "Qx"と"Qy"がそれぞれ X axis と Y axis とする場合
>>> p.ShowData( "Qx", "Qy" )

また、強度方向のスケールを変更することや、X軸Y軸のスケールを変更することも可能である。詳細は次章で述べる。

>>> p.SetIntScale( 0, 200 )  # 強度の範囲を0-200で表示
>>> p.SetXScale( -5, 5 )     # X軸の範囲を-5 から 5に設定

CUIのコマンド詳細#

以下にM2PlotPlusCuiで使用できるコマンド(メソッド)を示す。

実際にスクリプトとしてM2PlotPlusCuiのコマンドを使用する場合は、下記のようになる。

# ECA にデータが入っているとする
import uGao.M2PlotPlusCui as M2P
p=M2P.M2PlotPlusCui(ECA)            # 夕顔のGUIを起動してデータを与える
p.ShowData()                        # プロットウィンドウにプロットする
p.SetLabels("Qa [rlu]","Qb [rlu]")  # X軸とY軸のラベルを設定
p.SetIntScale(0.1,500)              # 強度の範囲を0.1-500に
p.SetIntLog(True)                   # 強度をログスケールに
del p

上記の p.XXX のXXXの部分がコマンド(メソッド)となる。以下に主に使用可能なメソッドをリファレンスとして記述する。

Available Data Type#

メソッド

説明概要

ShowData( xkey, ykey, rkey, r_min, r_max)

読み込ませたデータを2Dプロッタで表示する

SetIntScale( min_v, max_v )

強度のスケールを指定する。パラメータがない場合 Auto Scaleとなる

SetXScale( min_v, max_v )

X軸のスケールを指定する。パラメータがない場合は Auto Scaleとなる

SetYScale( min_v, max_v )

Y軸のスケールを指定する。パラメータがない場合は Auto Scaleとなる

SetLabels( xlabel, ylabel )

X軸およびY軸のラベルを指定する。

SetUnits( xunit, yunit )

X軸およびY軸の単位(プロッタ上で表示)を指定する

SetTitles( title, comment )

プロッタのタイトル(1行目)とコメント文(2行目)を指定する

SetSmoothing( isSmooth, windowVal, timesVal )

強度のスムージングを行う

SetWindowSize( width, height )

プロットウィンドウ自体のサイズを指定する

SetIntLog( flag )

強度のログスケールを設定する

SetXLog( flag )

X軸方向のログスケールを設定する

SetYLog( flag )

Y軸方向のログスケールを設定する

SetWindowTitle( title )

プロットウィンドウのタイトルを設定する

SaveAsText( filename, dQ, isIgnoreMask, maskinfo )

プロット中のデータをテキストファイルに保存する

SetSliceMethod( isAve)

スライスの強度計算が平均値か積算値かを指定する

Close()

M2PlotPlusを閉じる(パネル・ウィンドウ共に)

以下に詳細なリファレンス(引数の説明を含む)を示しておく。

class M2PlotPlusCui(data=None, closeFlag=True)#

Class to control M2PlotPlus on CUI

Parameters
  • data (ElementContainerArray/Matrix) – Data to be plotted.

  • closeFlag (bool) – Flag to close M2PlotPlus when the pearent class closes.

ChangeData(data=None)#

Send data to M2PlotPlus

Parameters

data (ElementContainerArray/Matrix) – Data to be plotted.

ShowData(xkey='-', ykey='-', rkey='-', r_min=0.0, r_max=0.0)#

Plot data with given axes data set defined by keys

Parameters
  • xkey (str) – Key of vector in data for X axis

  • ykey (str) – Key of vector in data for Y axis

  • rkey (str) – Key of 3rd vector in data for DetectMap mode

  • r_min (str) – range of 3rd vector for DetectorMap mode

  • r_max (str) – range of 3rd vector for DetectorMap mode

SetLabels(xlabel='-', ylabel='-')#

Set Labels for axes

Parameters
  • xlabel (str) – Label of X-axis

  • ylabel (str) – Label of Y-axis

SetUnits(xunit='-', yunit='-')#

Set Units for axes

Parameters
  • xunit (str) – Unit for X-axis

  • yunit (str) – Unit for Y-axis

SetTitles(title='-', comment='-')#

Set Titles

Parameters
  • title (str) – Title for 2d plotting

  • comment (str) – Comments for 2d plotting

SetSmoothing(isSmooth=False, windowVal=1, timesVal=1)#

Set Smoothiing

Parameters
  • isSmooth (bool) – Affect Smoothing or not

  • windowVal (int) – Window Size for smoothing

  • timesVal (int) – The times of smoothing

SetWindowSize(width, height)#

Set Window Size

Parameters
  • width (int) – window width

  • height (int) – window height

SetIntLog(flag=True)#

Set log scale on Intensity

Parameters

flag (bool) – True:On, False:Off

SetXLog(flag=True)#

Set log scale on X axis

Parameters

flag (bool) – True:On, False:Off

SetYLog(flag=True)#

Set log scale on Y axis

Parameters

flag (bool) – True:On, False:Off

SetIntScale(min_v=None, max_v=None)#

Set scale range for Intensity. hen not given both arguments,like SetIntScale(), Auto scale turns on.

Parameters
  • min_v (float) – minumum of range

  • max_v (float) – maximum of range

SetXScale(min_v=None, max_v=None)#

Set scale range for X axis. When not given both arguments,like SetXScale(), Auto Xscale turns on.

Parameters
  • min_v (float) – minumum of range

  • max_v (float) – maximum of range

SetYScale(min_v=None, max_v=None)#

Set scale range for Y axis. When not given both arguments,like SetYScale(), Auto Yscale turns on.

Parameters
  • min_v (flaot) – minumum of range

  • max_v (float) – maximum of range

SetCurrentKey(key):

Set a current key

Parameters

key (str) – key

SetWindowTitle(title)#

Set Window Title

Parameters

title (str) – window title

SaveAsText(filename, dQ=0.0, isIgnoreMask=False, maskinfo=[False, 0.0])#

Save plotted data to a text file

Parameters
  • filename (str) – path to file to be saved

  • dQ (flaot) – delta Q value for powder data with inelastic scattering data

  • isIgnoreMask (bool) – Flag to ignore mask values in plotting data on writing text file

  • maskinfo (list) – [<bool>, <float>] <bool> is flag to use given mask values (<float>) insteed of original ones

SetSliceMethod(isAve)#

Set Slice method to add data

Parameters

isAve (bool) – True:average mode, False:summation mode

Close()#

Close M2PlotPlus

スライスをコマンドで実行#

M2Plot+で行っているスライス作業をスクリプトなどに埋め込んで実行したい場合は、万葉ライブラリのスライスコマンド( Manyo.MLF.MlfArraySlicer )を利用する。このコマンドはM2Plot+内部でも使用されている汎用的なものである。

以下に2次元データ(ElementContainerArray)をスライスし、結果をMPlotで表示するスクリプトの例を示す。

# ECAにM2Plot+で表示できるデータが入っているとする

# MlfArraySlicerによるスライス手順の概要
# (1)スライスしたい軸と領域を指定
# (2)指定領域をどちらの軸に積分(射影)するかを指定しスライスデータを作成

# データ内のどの数列をスライス時の横軸と縦軸にするか決めるためのXkeyとYkeyを指定する
# これらはM2Plot+のメインパネルの"Plot Data Area"(一番上)のプルダウンメニューの文字列と同じ
Xkey = "Qx"
Ykey = "Qy"

# スライス対象領域
x_min = -0.5
x_max = 0.5
y_min = -0.02
y_max = 0.02

# スライス強度を平均するか積算するか
isAve = True

# スライスコマンドの準備(データと軸の指定も)
import Manyo.MLF as mm
ss = mm.MlfArraySlicer(ECA)
ss.SetAxes(Xkey, Ykey)
# スライス範囲を指定
ss.ClearClipRegion()
ss.SetClipRegion(x_min, y_min, x_max, y_max)
# X軸に沿ってスライス(Y軸方向は積分)
# 戻り値はElementContainerArray(複数の領域を指定できるため)
ret = ss.CutAlongX(isAve)
# Y軸に沿ってスライス(X軸方向は積分)する場合(上で指定したスライス対象領域に注意)
# ret = ss.CutAlongY(isAve)

# 最初の範囲のスライスを取り出す(範囲は複数指定できるため)
EC_alongX = ret.Put(0)

# スライスデータをMPlotで表示
import uGao.MPlot as mp
p1 = mp.MPlot(EC_alongX)

ElementContainerヘッダ情報#

M2Plot+に与えるデータはElementContainerArrayとElementContainerMatrixが可能であるが、M2Plot+はこれらのデータのヘッダに書き込まれた情報に応じて、ある程度2Dプロット表示を制御(自動化)できる。

データタイプ

キー

タイプ

目的

ElementContainerMatrix

and

ElementContainerArray

M2PP_X_KEY

string

Plot Data AreaにてX AxisのKeyとして与える文字列

M2PP_Y_KEY

string

Plot Data AreaにてY AxisのKeyとして与える文字列

M2PP_RNG_KEY

string

Plot Data AreaにてIntensityのKeyとして与える文字列

XLABEL

string

Plot Data AreaにてX AxisのLabelとして与える文字列

YLABEL

string

Plot Data AreaにてY AxisのLabelとして与える文字列

Xunit

string

Plot Data AreaにてX AxisのUnitとして与える文字列

Yunit

string

Plot Data AreaにてY AxisのUnitとして与える文字列

ElementContainerArray

XRANGE

vector<Double>

2DプロットにてX axisの値として利用される範囲(実数)