CUIインターフェースと機能

コマンドラインからの起動方法

PythonコマンドプロンプトでMPlotモジュールを読み込む。

>>> import vis.MPlot as mp

ここでは、vis.MPlotというモジュールを読み込むが、扱うには長いので、mpという代用名(エイリアスみたいなもの)を付けている。

引数としては、

  1. データなし
  2. ElementContainer
  3. 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

プロットの条件指定方法

  1. Pattern 指定

    データ番号の後に、キーワードと値を設定。 データ番号を0 とすると、全プロットに適用する。

  2. 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"
  3. 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"
  4. 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)