====================== 夕顔2次元可視化M2Plot+ ====================== 概要 ======== M2Plot+は、万葉ライブラリのデータコンテナである *ElementContainerMatrix* や *ElementContainerArray* などに収められたデータを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ではその結果が表示される。 .. figure:: media/M2Plot_About.png :align: center :scale: 40 % Main Panel and Plot Window of M2Plot+ 表示直後は、せいぜいプロットの強度や軸を設定するくらいなので、メインパネルで必要な部分を見てみる。 ------------------------- メインパネル ------------------------- .. figure:: media/M2Plot_MainPanel.png :align: center :scale: 40 % Main Panel and its sections 主に3つの部分に分かれており、図中の *Plot Data Area* はデータをプロットするのに必要な軸を選び、 *Show* ボタンでプロットを表示・更新する役割を持つ。 頻繁に使用するであろうプロットの強度や軸の範囲の設定は、 *Axes Setting Area* で行う。 .. figure:: media/M2Plot_MP_AxesArea0.png :align: center :scale: 40 % Axes Setting Area in Main Panel 例えば、強度の範囲を変更したい場合は以下のようになる。 1. *Auto Scale* のチェックボックスを外し 2. *Range* の二つの欄に最小値と最大値を入れて 3. *Apply* ボタンを押す すると、プロットウィンドウの図が変わったことが確認できる。 同様に *X Scale* や *Y Scale* も変更可能である。 強度や、軸方向のスケールをログにするには、 *Log Scale* のチェックを入れれば良い。 次にざっくりとプロットウィンドウを使用してみる。 -------------------------------- プロットウィンドウ -------------------------------- データはプロットウィンドで表示される。二次元データは 2D Plot Areaに表示される。プロットウィンドウはマウス操作で拡大・縮小・縦横比変更などが自由に行える。またこのサイズは数値で指定することも可能である( *Set View Parameters* ダイアログを使用 ) .. figure:: media/M2Plot_PlotWindow0.png :align: center :scale: 40 % Plot Window with slices. 中央の2D Plot Areaにマウスカーソルを持っていき、適当な場所をクリックすると、上と右にある *X-Intensity Slice* 及び *Y-Intensity Slice* にその点を中心としたX方向及びY方向のラインの強度がそれぞれプロットされる。 同様にドラッグを行うと、ドラッグした領域に対して網掛けの選択領域が表示され、その範囲内のX方向及びY方向の強度がそれぞれプロットされる。 .. figure:: media/M2Plot_PW_Selected.png :align: center :scale: 20 % Plot Window with toggled selected area. このスライスしたデータを、1次元プロッタである **MPlot** を別ウィンドウとして起動して表示することも可能である。 上と右の *X-Intensity Slice* 及び *Y-Intensity Slice* 上で右クリックを行うと、プルダウンメニューが表示される。 .. figure:: media/M2Plot_Main_RightClick0.png :align: center :scale: 40 % Pulldown menu by clicking on X-Intensity or Y-Intensity slice area ここで **Add To MPlot** を選択すると新しくMPlotが起動し、そのスライスが表示される。 ---------------------------- ツールバー ---------------------------- ツールバーを使うと、プロットウィンドウに関する各種設定を行うことができる。 .. figure:: media/M2Plot_PW_ToolBar.png :align: center :scale: 60 % 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** の領域が消される。 .. figure:: media/M2Plot_PlotWindow1.png :align: center :scale: 40 % Plot Window without slices. |PW_Icon_3cursor| このボタンをオンにすると、2D Plot Area上のクリックやドラッグした時の領域が表示されるようになる。 .. figure:: media/M2Plot_PW_Selected.png :align: center :scale: 15 % Plot Window with toggled selected area. |PW_Icon_4grid| このボタンをオンにすると、2D Plot Area上にグリッド線が表示される。グリッドに関する詳細な設定は *Set View Parameter* ダイアログにて行うことができる。 このほか、メインパネルの Fileメニューからテキストに保存なども可能である。 おおよそ、この程度のことができると可視化については大体のことが可能になると考えている。より詳細な設定項目などは次章以降を参照すること。 .. |PW_Icon_0save| image:: media/M2Plot_PW_Icon_0save.png :width: 32px .. |PW_Icon_1setting| image:: media/M2Plot_PW_Icon_1setting.png :width: 32px .. |PW_Icon_2sliceview| image:: media/M2Plot_PW_Icon_2sliceview.png :width: 32px .. |PW_Icon_3cursor| image:: media/M2Plot_PW_Icon_3cursor.png :width: 32px .. |PW_Icon_4grid| image:: media/M2Plot_PW_Icon_4grid.png :width: 32px 仕様の詳細 ========================== --------------- Main Panel --------------- Main Panelは下図のように主に3つのエリアに分割できる。それぞれ以下に説明する。 .. figure:: media/M2Plot_MainPanel.png :align: center :scale: 40 % Main Panel and its sections Plot Data Area ----------------------- M2Plot+に与えられたデータから表示するための軸を設定し、プロットウィンドウにて表示するための設定である。ただし、他のアプリケーションからデータとともに起動した場合、このエリアは既に設定が終わっていることが多く、あらためて設定することは少ないだろう。 .. figure:: media/M2Plot_MP_DataArea0.png :align: center :scale: 40 % Data Setting Area in Main Panel M2Plot+で表示するデータコンテナは、プロットする時に使用するX軸の配列とY軸の配列、強度の配列が含まれている。それらを指定する設定である。 それぞれの配列は **Key** という名前でデータコンテナに登録されているので、 *X axis* と *Y axis* そして *Intensity* で対応する Key を選択する。またそれらに対してプロッタ上で表示される各軸の名前 ( **Label** ) と単位 ( **Unit** )も設定可能である。 また与えられたデータが2次元検出機のマップデータの場合は、このエリア下部の **Summation range** の欄もアクティブとなり、同様にKeyを設定できる。 このエリアにはボタンが二つある。 Openボタン データコンテナがバイナリファイルとして保存されていた場合、このボタンを利用してデータを読み込むことができる。ただし、読み込めるファイルは万葉ライブラリの基本データファイルである *ManyoBinary* (拡張子が ".mdb")のみである。 Showボタン このボタンを押すと上記の *X axis* などの情報を用いで与えられたデータをプロットウィンドウにて表示される。 MoveToFrontボタン Showボタンの右にあるボタンは、このMain Panelに対応するプロットウィンドウを画面の手前に持ってくるボタンである。複数のウィンドウが表示されていて埋もれてしまったときなどに用いられる。 Axes Area ----------------------- .. figure:: media/M2Plot_MP_AxesArea0.png :align: center :scale: 40 % Axes Setting Area in Main Panel Showボタンを押してプロットウィンドウが表示されているときにアクティブになるエリアである。ここではX軸、Y軸、強度のスケールを変更できる。それぞれの軸にて指定できるのは以下の項目である。これらのパラメータを指定した後、 **Apply** ボタンによりプロットウィンドウに反映される。いくつかの設定項目は変更直後に反映される。 .. table:: Setting for Axes Area :align: center +----------+------------------------------------------------------------------------+ |Auto Scale|強度や軸の範囲をデータの最小値と最大値で指定する | +----------+------------------------------------------------------------------------+ |Range |強度や軸の範囲を入力する | +----------+------------------------------------------------------------------------+ |Log Scale |強度や軸のスケールをログ表示にする | +----------+------------------------------------------------------------------------+ |Smooth |強度分布に対してスムージングを行う。matplotlibのガウス関数にて行われる。| | |パラメータとしては window(作用幅)とtime(回数)が設定できる | +----------+------------------------------------------------------------------------+ |Inversion |軸の最大値と最小値の位置を入れ替える | +----------+------------------------------------------------------------------------+ Slicing Area ----------------------- このエリアでは、プロットウィンドウで表示されたデータに対し、X軸方向やY軸方向にスライスを行ったり、対角線上にスライス、またスライスに対するいくつかの設定を行うことができる。これらの設定はタブによって切り替えられる。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Along X axis / Y axisタブ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ X軸方向もしくはY軸方向へのスライスを行うタブである。 .. figure:: media/M2Plot_MP_SliceArea0.png :align: center :scale: 40 % X axis Slice setting スライスの領域の指定は以下の二つがある。 X Value / Y Valueチェックボックス スライスの中央値と幅で指定する。なお、 *To* と *Step* を指定することで、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 範囲指定)に対して、それぞれ連続スライスが可能となっている。 .. figure:: media/M2Plot_MP_SliceArea0_cont1.png :align: center :scale: 40 % 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プロット表示される。 .. figure:: media/M2Plot_MP_SliceArea0_cont2.png :align: center :scale: 40 % 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タブ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 矩形方の指定範囲の対角線方向へのスライスを行うタブである。 .. figure:: media/M2Plot_MP_SliceArea1.png :align: center :scale: 40 % Diagonal Slice setting ここで使用されるパラメータは以下の通りである。 .. table:: Parameters for Diagonal Slice :align: center +-------+--------------------------+ |Start |始点のX値とY値 | +-------+--------------------------+ |End |終点のX値とY値 | +-------+--------------------------+ |width |スライス線に垂直な幅 | +-------+--------------------------+ |binning|スライス方向の分割幅 | +-------+--------------------------+ 1D Plotボタン 上記の設定値で対角線スライスを行う。スライス結果の横軸はStart点(始点)からの距離であり、その分割数はbinning値で指定する。width値は対角線に垂直な方向の幅で、この範囲内にあるデータ点をスライスの強度計算に用いる。 2D Plotボタン (未実装) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Settingsタブ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ スライスに関連する設定を行う。 .. figure:: media/M2Plot_MP_SliceArea2.png :align: center :scale: 40 % Settings for Slice .. table:: Settings for Slice :align: center +-----------+---------+-------------------------------------------------------------------+ |Integration|Average |スライス領域内の強度をbin毎に平均値をとりスライス強度とする | | +---------+-------------------------------------------------------------------+ | |Summation|スライス領域内の強度をbin毎に足し合わせたものをスライスの強度とする| +-----------+---------+-------------------------------------------------------------------+ --------------------------------- Set View Parametersダイアログ --------------------------------- M2Plot+のほぼ全ての設定が行えるダイアログである。ToolBar の *Set View Parameters* を押す、もしくは *Edit* メニューから *Set View Parameters* を選択ことで表示される。 .. figure:: media/M2Plot_SetViewParams0.png :align: center :scale: 60 % Set View Parameter Dialog. 以下に *Set View Parameters* ダイアログで設定できる項目を示す。 Axes Scale Area ----------------------- このダイアログの上半分では、X軸及びY軸に関する設定を行う。 .. figure:: media/M2Plot_SVP_0AxesScale.png :align: center :scale: 40 % Axes Scale Setting on Set View Parameter Dialog. .. table:: Parameters on Axes Scale Setting Area :align: center +------------+-----------+----------------------------------------------------+ |Group |Items |Meanings | +============+===========+====================================================+ |X,Y Scale |Label |プロット軸のラベルと単位を設定 | | +-----------+----------------------------------------------------+ | |Log Scale |軸のログスケールのオンオフ | | +-----------+----------------------------------------------------+ | |Inversion |軸の方向の逆転 | | +-----------+----------------------------------------------------+ | |Auto Scale |軸の範囲を自動的に設定 | | +-----------+----------------------------------------------------+ | |Range |軸の範囲を指定 | +------------+-----------+----------------------------------------------------+ |Thicks Label|Auto Format|軸に付随する数値のフォーマットの自動化のオンオフ | | +-----------+----------------------------------------------------+ |Format |Format |数値のフォーマットをFloating PointかExponentかを選ぶ| | +-----------+----------------------------------------------------+ | |Precition |数値の桁数 | +------------+-----------+----------------------------------------------------+ Plot Settings ----------------------- このダイアログの下半分では、タイトルやグリッド、強度のカラーマップなどプロットの見栄えに関する設定を行うことができる。タブで設定項目を切り替え、下部にある **Apply** ボタンでプロットウィンドウに反映させる。 .. figure:: media/M2Plot_SVP_1General.png :align: center :scale: 40 % 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で表示できるグリッドの設定を行う。 .. figure:: media/M2Plot_SVP_2Grid.png :align: center :scale: 40 % Grid tab on Set View Parameter Dialog. X軸方向に引くグリッド(Horizontal)とY軸方向に引くグリッド(Vertical)についてチェックボックスにて、表示のオン・オフが切り替えられる。 同時にそれぞれ下記のような設定が可能である。 .. table:: Grid Settings :align: center +--------+----------------------------------------------------------+ |Color |グリッド線の色 | +--------+----------------------------------------------------------+ |Style |グリッド線の種類 ("Solid", "Dotted", "Dashed", "Dashdot" )| +--------+----------------------------------------------------------+ |Width |グリッド線の幅 | +--------+----------------------------------------------------------+ |Interval|グリッド線の間隔、通常は空っぽで良い。 | | |数値を入れるとその数値の間隔を開けてグリッドが引かれる | +--------+----------------------------------------------------------+ ^^^^^^^^^^^^^^^^^^ Color Mapタブ ^^^^^^^^^^^^^^^^^^ 2D Plot Areaでの強度方向のカラーマップやスムージングなどの設定を行う。 .. figure:: media/M2Plot_SVP_3ColorMap.png :align: center :scale: 40 % Color Map tab on Set View Parameter Dialog. .. table:: Color Map Tab parameters :align: center +----------+-------------------------------------------------------------------------------+ |Color Map |プルダウンから使用するColor Mapを指定する。 | +----------+-------------------------------------------------------------------------------+ |Log Scale |強度方向のカラーマップをログスケールで表示する。 | +----------+-------------------------------------------------------------------------------+ |Smoothing |スムージングを行う。Windowはスムージングをかぶせる範囲、Timesはその回数である。| +----------+-------------------------------------------------------------------------------+ |Auto Scale|プロットする強度の範囲を自動的に与える。 | +----------+-------------------------------------------------------------------------------+ |Range |Auto Scaleがオフの場合に強度の範囲を最小値と最大値で指定する。 | +----------+-------------------------------------------------------------------------------+ なお、上限値のみを変更できる強度のスライドバーも存在し、使用可能である。 ^^^^^^^^^^^^^^^^^^ Ticks-Frameタブ ^^^^^^^^^^^^^^^^^^ 2D Plot AreaでのTicks(軸の刻み)や、バックグランドの色についての設定を行う。 .. figure:: media/M2Plot_SVP_4Ticks.png :align: center :scale: 40 % Ticks-Frame tab on Set View Parameter Dialog. .. table:: Ticks-Frame Tab parameters :align: center +----------------+------------------------------------------------------+ |Mask Color |データ点にマスクが掛かっている場合の色を指定する | +----------------+------------------------------------------------------+ |BG Color |データ点が存在しない場合の色を指定する | +----------------+------------------------------------------------------+ |Add Ticks |軸の刻みを表示したい軸(上下左右)にチェックする | +----------------+------------------------------------------------------+ |Ticks Color |軸の刻みの色を指定する(デフォルトは黒) | +----------------+------------------------------------------------------+ |Major Ticks |軸の刻みの長さ(Length)と幅(Width)を指定する | +----------------+------------------------------------------------------+ |Minor Ticks |表示したい場合チェックを入れ、刻みの長さと幅を指定する| +----------------+------------------------------------------------------+ |Frame Line Width|プロットの枠線の太さを指定する | +----------------+------------------------------------------------------+ ^^^^^^^^^^^^^^^^^^ Fontタブ ^^^^^^^^^^^^^^^^^^ 2D Plot Areaでのフォントのサイズと種類を設定する。 .. figure:: media/M2Plot_SVP_5Font.png :align: center :scale: 40 % Font control tab on 2D Plot Area of M2Plot+ main window .. table:: Frame Tab parameters :align: center +--------------------+-------------------------+ |Title |タイトル | +--------------------+-------------------------+ |Comment |コメント | +--------------------+-------------------------+ |X Label |X軸のラベル(単位も同様)| +--------------------+-------------------------+ |Y Label |Y軸のラベル(単位も同様)| +--------------------+-------------------------+ |X Ticks Label |X軸の刻みの数値 | +--------------------+-------------------------+ |Y Ticks Label |Y軸の刻みの数値 | +--------------------+-------------------------+ |Colorbar Ticks Label|カラーバーの刻みの数値 | +--------------------+-------------------------+ GUI詳細仕様:OverPlot機能 ======================== OverPlot機能はM2Plot+でのプロット上に、さらにラインをオーバープロットできる機能である。 .. figure:: media/M2Plot_Main_OverPlot.png :align: center :scale: 20 % Example an over-plotting function of M2Plot+ ただし、一次元の線だけである。線の色や太さ、線種などは変更可能である。基本的な操作としては、以下のようになる。 1. オーバープロットしたいテキストファイルを用意し 2. オーバープロットダイアログから読み込む 読み込ませるファイルには2種類ある。 A. MPlotのSaveAsで保存したテキストファイル B. 単純なテキスト AはMPlotで出力したファイルである。Bのテキストファイルは下記のように1点を X値、Y値、必要ならError値を1行に書く形式である。 :: ,[,] ,[,] ... 具体的には下記のように単純に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 次にこのテキストファイルを読み込むために、オーバープロットダイアログを呼び出す。 下記のようにプロットウィンドウのメニューから呼び出す。 .. figure:: media/M2Plot_Main_MenuAnalyze.png :align: center :scale: 40 % OverPlot item on Analyze menu 結果として、下記のようなダイアログが開く。 .. figure:: media/M2Plot_Dialog_OverPlot.png :align: center :scale: 40 % OverPlot Dialog ここで、 **Add File ...** ボタンを押して用意したテキストファイルを読み込むと、下記のように1行追加される。 .. figure:: media/M2Plot_Dialog_OverPlot1.png :align: center :scale: 40 % OverPlot Dialog after loading a text file 行の先頭の *Disp* チェックボックスを利用すると表示・非表示が指定できる。同じ行には以下のような項目があるので、それぞれ設定が可能である。 .. table:: Setting for over plotting line :align: center +------+-------------------------+ |設定 |意味 | +======+=========================+ |Disp |表示・非表示 | +------+-------------------------+ |Color |色 | +------+-------------------------+ |Style |線の種類(Line, Dots, ...)| +------+-------------------------+ |LW |線幅 | +------+-------------------------+ |Marker|マーカー | +------+-------------------------+ |Size |マーカーのサイズ | +------+-------------------------+ |Err |Y軸方向にエラーバー | | |(あれば) | +------+-------------------------+ 扱えるデータタイプ ===================== なお、M2PlotPlusで表示できるデータコンテナは以下のようになっている。 .. table:: Available Data Type :align: center +------------------------+----------------------+------------------------------------------------------+ |汎用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 axis* や *Y 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のコマンドを使用する場合は、下記のようになる。 .. code-block:: python # 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の部分がコマンド(メソッド)となる。以下に主に使用可能なメソッドをリファレンスとして記述する。 .. table:: Available Data Type :align: center +--------------------------------------------------+----------------------------------------------------------------+ |メソッド |説明概要 | +==================================================+================================================================+ |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を閉じる(パネル・ウィンドウ共に) | +--------------------------------------------------+----------------------------------------------------------------+ 以下に詳細なリファレンス(引数の説明を含む)を示しておく。 .. py:class:: M2PlotPlusCui(data=None, closeFlag=True) Class to control M2PlotPlus on CUI :param ElementContainerArray/Matrix data: Data to be plotted. :param bool closeFlag: Flag to close M2PlotPlus when the pearent class closes. .. py:method:: ChangeData(data=None) Send data to M2PlotPlus :param ElementContainerArray/Matrix data: Data to be plotted. .. py:method:: M2PlotPlusCui.ShowData(xkey="-",ykey="-",rkey="-",r_min=0.0,r_max=0.0) Plot data with given axes data set defined by keys :param str xkey: Key of vector in data for X axis :param str ykey: Key of vector in data for Y axis :param str rkey: Key of 3rd vector in data for DetectMap mode :param str r_min: range of 3rd vector for DetectorMap mode :param str r_max: range of 3rd vector for DetectorMap mode .. py:method:: SetLabels(xlabel="-",ylabel="-") Set Labels for axes :param str xlabel: Label of X-axis :param str ylabel: Label of Y-axis .. py:method:: SetUnits(xunit="-",yunit="-") Set Units for axes :param str xunit: Unit for X-axis :param str yunit: Unit for Y-axis .. py:method:: SetTitles(title="-",comment="-") Set Titles :param str title: Title for 2d plotting :param str comment: Comments for 2d plotting .. py:method:: SetSmoothing(isSmooth=False,windowVal=1,timesVal=1) Set Smoothiing :param bool isSmooth: Affect Smoothing or not :param int windowVal: Window Size for smoothing :param int timesVal: The times of smoothing .. py:method:: SetWindowSize(width, height) Set Window Size :param int width: window width :param int height: window height .. py:method:: SetIntLog(flag=True) Set log scale on Intensity :param bool flag: True:On, False:Off .. py:method:: SetXLog(flag=True) Set log scale on X axis :param bool flag: True:On, False:Off .. py:method:: SetYLog(flag=True) Set log scale on Y axis :param bool flag: True:On, False:Off .. py:method:: SetIntScale(min_v=None, max_v=None) Set scale range for Intensity. hen not given both arguments,like SetIntScale(), Auto scale turns on. :param float min_v: minumum of range :param float max_v: maximum of range .. py:method:: SetXScale(min_v=None, max_v=None) Set scale range for X axis. When not given both arguments,like SetXScale(), Auto Xscale turns on. :param float min_v: minumum of range :param float max_v: maximum of range .. py:method:: SetYScale(min_v=None, max_v=None) Set scale range for Y axis. When not given both arguments,like SetYScale(), Auto Yscale turns on. :param flaot min_v: minumum of range :param float max_v: maximum of range .. py:method:: SetCurrentKey(key): Set a current key :param str key: key .. py:method:: SetWindowTitle(title) Set Window Title :param str title: window title .. py:method:: SaveAsText(filename, dQ=0.0, isIgnoreMask=False, maskinfo=[False,0.0] ) Save plotted data to a text file :param str filename: path to file to be saved :param flaot dQ: delta Q value for powder data with inelastic scattering data :param bool isIgnoreMask: Flag to ignore mask values in plotting data on writing text file :param list maskinfo: [, ] is flag to use given mask values () insteed of original ones .. py:method:: SetSliceMethod(isAve) Set Slice method to add data :param bool isAve: True:average mode, False:summation mode .. py:method:: Close() Close M2PlotPlus ------------------------------------- スライスをコマンドで実行 ------------------------------------- M2Plot+で行っているスライス作業をスクリプトなどに埋め込んで実行したい場合は、万葉ライブラリのスライスコマンド( *Manyo.MLF.MlfArraySlicer* )を利用する。このコマンドはM2Plot+内部でも使用されている汎用的なものである。 以下に2次元データ(ElementContainerArray)をスライスし、結果をMPlotで表示するスクリプトの例を示す。 .. code-block:: python # 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|M2PP_X_KEY |string |Plot Data AreaにてX AxisのKeyとして与える文字列 | | +------------+--------------+----------------------------------------------------+ |and |M2PP_Y_KEY |string |Plot Data AreaにてY AxisのKeyとして与える文字列 | | +------------+--------------+----------------------------------------------------+ |ElementContainerArray |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|2DプロットにてX axisの値として利用される範囲(実数)| +----------------------+------------+--------------+----------------------------------------------------+