CUIインターフェースと機能¶
コマンドラインからの起動方法¶
PythonコマンドプロンプトでMPlotモジュールを読み込む。
>>> import vis.MPlot as mp
ここでは、vis.MPlotというモジュールを読み込むが、扱うには長いので、mpという代用名(エイリアスみたいなもの)を付けている。
引数としては、
- データなし
- ElementContainer
- ElementContainerのリスト
などを与えることができる。
まず、引数のデータなしで行う場合。
>>> p = mp.MPlot()
ここで、pは、プロッタを制御するために必要な実体(インスタンス)と呼ばれるMPlotの本体が含まれたものである。MPlotに対するコマンドは、このインスタンスを用いて行う。とりあえずは、このように使うことだけ覚えておけばよい。
次に、一つのElementContainerのec0が既にあって、MPlotを使ってすぐにプロットする場合は、以下のように単純に引数としてec0を与える。
>>> p = mp.MPlot( ec0 )
また、ElementContainerが複数( ec0, ec1, ec2, ec3 )存在し、起動後すぐにプロットする場合、python上でリスト("[ ]"でくくったデータ列)を用意して、引数に使用することも可能である。
>>> ec_list = [ ec0, ec1, ec2, ec3 ]
>>> p = mp.MPlot( ec_list )
もしくは、直接リスト表記を引数に使用してもよい。
>>> p = mp.MPlot( [ ec0, ec1, ec2, ec3 ] )
プロッターに対するパラメータなどの変更は次節を参照のこと。
コマンドラインから起動した場合、プロッタの実体(インスタンス)を利用してプロッタを制御することが可能である。プロットするデータは、万葉ライブラリのElementContainerである。
データの追加¶
既に起動しているMPlotに追加する場合は、以下のように起動時に作成したインスタンスを用いる。このときの引数は、ElementContainer一つでもリストでもよい。 以下のスクリプトでは、まずデータが空のMPLotを作成(インスタンスの作成)し、ElementContainerデータを追加する。ここでec1, ec2, ec3はすでに用意されているElementContainerである。
>>> import vis.MPlot as mp
>>> p=mp.MPlot()
>>> p.AddData( ec1 )
>>> p.AddData( [ ec2, ec3 ] )
別のプロッタを開く¶
別のプロッタを開くにはいくつかの方法がある。ここまでに示したように、新たにインスタンスを別の名前にして起動してもよいし、
>>> p2 = mp.MPlot()
すでに作成しているインスタンスから別のプロッタ窓を立ち上げることもできる。
>>> p.NewPlot()
終了¶
MPlotのウィンドウのクローズボタンか、FileメニューのExitを選ぶことで終了する。
もしくは、下記のコマンドで終了できる。
>>> p.Close(0)
なお、引数の0は全プロッタ窓を閉じることを意味する。プロッタ番号(プロッタのタイトルバーにある数字)を指定すれば、それだけを閉じることができる。引数がない場合、現在アクティブになっているプロッタ窓だけ閉じる(残りはそのまま)。
プロッタ上のデータの扱い¶
MPlotでプロットすると、データの中身がコピーされてMPlotへ流れるので、プロットした後でそのデータを変更してもプロットは変化しない。
MPlot用の特別なヘッダ¶
MPlotでプロットするデータのヘッダに以下のようなキーで文字列が登録されていると、それがプロッタ上に反映される。
MPlotに作用するヘッダのキー
キー 意味 XLabel X軸のラベル YLabel Y軸のラベル Label このデータのトレースラベル
ちなみに、単位(MPlot上で軸のラベルの脇に[ ... ]と表示される部分)は、与えられたElementContainerに登録されている単位が用いられる。
参考:CUI機能補足¶
CUI機能一覧¶
メソッド 機能 引数 AddData (data) データ追加 data: ElementContainerまたはそのリスト Remove (n) or Remove(0) データ削除 n: データの順番、0を指定すると全データ NewPlot(data) or NewPlot() data は省略可 新規プロッタを開く data: ElementContainerまたはそのリスト ChangePlot(n) カレントプロッタの変更 n: プロッタ番号 SetXScale() or SetXScale(x0, x1) X範囲設定 引数無し: 自動、x0: X軸始値、x1: X軸終値 SetYScale() or SetYScale(y0, y1) Y範囲設定 引数無し: 自動、y0: Y軸始値、y1: Y軸終値 SetLogX(False) or SetLogX(True) X軸ログ指定 True: ログスケール、 False: リニアスケール SetLogY(False) or SetLogY(True) Y軸ログ指定 True: ログスケール、 False: リニアスケール SetOverlay(True) or SetOverlay(False) 重ね書き指定 True: 重ね書き、 False: 個別 SetOffset(xoffset, yoffset) オフセット指定 重ね書き On 時有効 xoffset: Xオフセット(0~200) yoffset: yオフセット(0~200) SetTraceNum(n) 1ページ当たりの プロット数指定 n: プロット数(1~50) 個別表示モードの場合は、n=1~4 SetPlotParam(0, ***="**"), SetPlotParam(n, ***="**") プロット条件設定 プロット条件(次ページ)参照 ChangeOrder(n1, n2) 表示順変更 n1: 変更前の順番、n2: 変更後の順番 ChangePage(n) ページ指定 n: ページ番号 SetXLabel(s) X軸ラベル指定 s: ラベル文字列、μ、Å使用時は特殊設定が必要 SetYLabel(s) Y軸ラベル指定 s: ラベル文字列 SetMainTitle(s) グラフのメインタイトル指定 s: メインタイトル (設定無しの場合はElementContainerのヘッダーに保存 されているRun No.[ string, KEY="RUNNUMBER"] を表示) SetMainTitle(s) グラフのサブタイトル指定 s: サブタイトル(コメント) (設定無しの場合は空白) Close(), Close(n) or Close(0) 画面を閉じる 無し: カレントプロッタを閉じる n: プロッタ番号を指定して閉じる 0: 全プロッタ画面を閉じる Print() 注: Windows では印刷ダイアログが表示される 印刷 無し Save(s) 画像保存 s:ファイル名称またはフルパスを示す文字列、 パス指定が無い場合はカレントディレクトリに保存。 ファイル名称またはフルパスに、日本語は使用不可。 拡張子: png, ps or eps ※
- パス指定時の例
- Linux : /home/vis/abc.png Windows: c:\\image\\abc.png
プロットの条件指定方法¶
- Pattern 指定
データ番号の後に、キーワードと値を設定。 データ番号を0 とすると、全プロットに適用する。
line: 線の属性
機能 キーワード 値 具体例 線種の変更 ls 直線 ls="-" 点線 ls=":" 鎖線 ls="--" 一点鎖線 ls="-." なし ls="" ヒストグラム形式指定 hs ヒストグラム形式 hs=True 通常形式 hs=False 線幅 lw 1〜10 lw=5 線の色 lc 自動 lc="*" 青 lc="b" 緑 lc="g" 赤 lc="r" 水色 lc="c" 藤紫 lc="m" 黄 lc="y" 黒 lc="k" mark: マークの属性
機能 キーワード 値 具体例 マークの種類 mk なし mk="" 点 mk="." 丸 mk="o" 四角 mk="s" 三角 mk="t" ひし形 mk="d" 十字 mk="+" X字 mk="x" マークサイズ ms 1〜10 ms=5 マークの色 mc 自動 mc="*" 青 mc="b" 緑 mc="g" 赤 mc="r" 水色 mc="c" 藤紫 mc="m" 黄 mc="y" 黒 mc="k" error: エラーバーの属性
機能 キーワード 値 具体例 エラーバーの有無 eb あり eb=True なし eb=False マークサイズ es 1〜10 es=5 マークの色 ec 自動 ec="*" 青 ec="b" 緑 ec="g" 赤 ec="r" 水色 ec="c" 藤紫 ec="m" 黄 ec="y" 黒 ec="k"
例¶
SetPlotParam(5, ls="-", eb=True)