# plot2d

2Dプロット

## 呼び出し手順

                plot2d([logflag,][x,],y[,style[,strf[,leg[,rect[,nax]]]]])
                plot2d([logflag,][x,],y,<opt_args>)

## パラメータ

x

  実数の行列またはベクトル. 省略された場合, ベクトル`1:n`が指定されたと仮定します. ただし, `n`は`y` パラメータで指定された曲線の点の数です.

y

  実数の行列またはベクトル.

<opt_args>

  一連の命令 `key1=value1,key2=value2`,... を表します. ただし, `key1`, `key2,...` には以下のどれかを指定できます:

  logflag

    軸スケール (線形または対数)を設定します. 値は文字列で, 以下の値のどれかを指定します: `"nn"`, `"nl"` , `"ln"` および `"ll"` .

  style
  に

    各曲線のスタイルを設定します. 値は整数値(正または負)を有する実数ベクトルを指定します.

  strf

    凡例の表示を制御します.

    `strf` は長さ3の文字列 `"xyz"`です. (デフォルトでは,`strf="081"`)

  leg

    曲線の凡例を設定します. 値には文字列を指定します.

  rect

    プロットに使用する最小限の領域を設定します. 値には以下の4個のエントリを有する実数ベクトルを指定します: `[xmin,ymin,xmax,ymax]`.

  nax

    軸ラベルと目盛の定義を設定します. 値には4個の整数エントリ`[nx,Nx,ny,Ny]`を有する 実数ベクトルを指定します.

  frameflag

    指定された最小限の領域に基づく実際の座標系の範囲の 計算を制御します. 値には, 0 から 8までの範囲の整数を指定します.

  axesflag

    軸の描画方法を指定します. 値には, 0 から 5までの範囲の整数を指定します.

## 説明

`plot2d` は一連の2次元曲線をプロットします. Matlabの`plot`構文に慣れている場合には, plotを使用するべきです.

`x` および `y` がベクトルの場合, plot2d(x,y,<opt_args>) はベクトル `y` を ベクトル `x`に対してプロットします. ベクトル`x` および `y`は 同じ数のエントリを有する必要があります.

`x` がベクトルで `y` が行列の場合, plot2d(x,y,<opt_args>) は`y`の各列を ベクトル`x`に対してプロットします. この場合,`y`の列の数は`x` のエントリの数に等しい必要があります.

`x` および `y` が行列の場合, plot2d(x,y,<opt_args>) は`y`の各列を 対応する`x`の列に対してプロットします. この場合,`x` と`y`の 大きさは同じである必要があります.

`y` がベクトルの場合, plot2d(y,<opt_args>) はベクトル `y` をベクトル `1:size(y,'*')`に対してプロットします.

`y` が行列の場合, plot2d(y,<opt_args>) は`y`の各列をベクトル `1:size(y,1)`に対してプロットします.

プロットをカスタマイズするために引数`<opt_args>` を 使用することができます.

logflag

  このオプションは, 軸スケール (線形または対数)を設定守るために使用できます. 値は文字列で, 以下の値のどれかを指定します: `"nn"`, `"nl"` , `"ln"` および `"ll"`. `"l"` は 対数軸/目盛, `"n"`は通常の軸を意味します.

style

  このオプションは,曲線の描画方法を指定する際に使用できます. このオプションを指定する場合, 値には曲線と同じ数のエントリを有するベクトルを指定します.

  - `style(i)` が正の場合, 曲線は実線で描画され, `style(i)`は曲線の描画に使用される 色の添字を定義します(getcolor参照). 線のスタイルおよび太さはpolylineエンティティプロパティ (polyline_properties参照) により設定することができることに注意してください.

    指定した曲線の点の間は区分線形補間が行われます.

  - `style(i)`が負またはゼロの場合, 指定した曲線の点はマーカにより描画されます, `abs(style(i))` は使用するマーカ id を定義します. マークの色および大きさはpolylineエンティティプロパティ (polyline_properties参照) により設定することができることに注意してください.

strf

  長さ `"xyz"` (デフォルトで `strf= "081"`)の文字列.

  x

    凡例の表示を制御します.

    x=0

      凡例なし.

    x=1

      凡例が表示されます.凡例は, オプションの引数 `leg`で指定されます.

  y

    指定した最小限の範囲に基づく実際の座標系の範囲の計算を 制御します. 実際の範囲は指定した最小限の範囲よりも大きくすることができます.

    y=0

      計算せずに,以前のスケール(またはデフォルト)を プロットに使用します

    y=1

      rect引数による

    y=2

      x, y データの最小値/最大値による

    y=3

      rect引数に基づき等軸スケールで構築

    y=4

      x, y データの最小値/最大値に基づき等軸スケールで構築

    y=5

      rect引数に基づき見栄え良く軸を拡大

    y=6

      x, y データの最小値/最大値に基づき見栄え良く軸を拡大

    y=7

      y=1に似ていますが, 前のプロットが新しいスケールを用いて再描画されます

    y=8

      y=2に似ていますが, 前のプロットが新しいスケールを用いて再描画されます

  z

    プロットの周囲のフレームへの情報の表示を制御します. 軸が指定された場合,目盛の数をオプションの引数 `nax`により指定できます.

    z=0

      プロットの周囲に何も描画されません.

    z=1

      軸が描画され, y軸が左に表示されます.

    z=2

      プロットが目盛のない箱で囲まれます.

    z=3

      軸が描画され, y軸が右に表示されます.

    z=4

      フレームボックスの中心に軸が描画されます.

    z=5

      点`(0,0)`で交差するように 軸が描画されます. 点`(0,0)`がフレーム内にない場合, グラフ上に軸は表示されません.

leg

  このオプションは曲線の凡例を設定する際に使用されます. `"leg1@leg2@...."`という形式の文字列とする 必要があります. ただし, `leg1` , `leg2` , ... はそれぞれ最初の曲線,2番目の曲線,...　の凡例です. デフォルトは `" "`です.

  曲線の凡例はx軸の下に描画されます. このオプションは柔軟ではないため,なるべく, captions または legend 関数を使用してください.

rect

  このオプションはプロット時に指定した最小限の範囲を設定する際に 使用できます. このオプションが指定された場合, 値は以下の4個のエントリを有する実数ベクトルとする必要があります:

  `[xmin,ymin,xmax,ymax]`. `xmin` および `xmax` は横座標の範囲を定義し, `ymin` および `ymax`は縦座標の範囲を定義します.

  この引数は,指定した`rect`引数に基づき軸境界を 定義する方法を指定する`frameflag`オプションと共に 使用することができます. `frameflag`オプションが指定されない場合, `frameflag=7`が仮定されます.

  軸境界も軸エンティティプロパティによりカスタマイズできます (axes_properties参照).

nax

  このオプションは軸ラベルおよび目盛定義を指定する際に使用できます. 値には4個の整数エントリ`[nx,Nx,ny,Ny]`を有する実数ベクトルを 指定します.

  `Nx` はx軸で使用される主目盛の数 (autoticksの場合は-1を指定)を指定し, `nx`は2つのx軸主目盛の間に描画される副目盛の 数を指定します.

  `Ny` および `ny` は y軸の同様な情報を指定します.

  `axesflag` オプションが設定されない場合, `nax` オプションは `axesflag`オプションが9に設定されていると 仮定します.

frameflag

  このオプションは指定された最小限の範囲に基づく実際の 座標系範囲の計算を制御するために使用できます. 実際の範囲は指定された最小限の範囲よりも大きくすることができます.

  frameflag=0

    計算せずに,以前のスケール(またはデフォルト)を プロットに使用します.

  frameflag=1

    実際の範囲は `rect` オプションにより指定された範囲となります.

  frameflag=2

    実際の範囲は `x` および`y` データの最小値/最大値から 計算されます.

  frameflag=3

    実際の範囲は`rect`オプションにより指定された範囲となり, 等軸スケールにするために拡大されます.

  frameflag=4

    実際の範囲は `x` および`y` データの最小値/最大値から 計算され,等軸スケールにするために拡大されます.

  frameflag=5

    実際の範囲は`rect`オプションにより指定された範囲となり, 軸ラベルの見栄えを良くするために拡大されます.

  frameflag=6

    実際の範囲は `x` および`y` データの最小値/最大値から 計算され,軸ラベルの見栄えを良くするために拡大されます.

  frameflag=7

    `frameflag=1`と似ていますが, 前のプロットが新しいスケールを用いて再描画されます. カレントのグラフに前のプロットを追加するために使用されます.

  frameflag=8

    `frameflag=2`と似ていますが, 前のプロットが新しいスケールを用いて再描画されます. カレントのグラフに前のプロットを追加するために使用されます.

  frameflag=9

    `frameflag=8` と似ていますが, 範囲は軸ラベルの見栄えを良くするために拡大されます. これはデフォルト値です.

  軸の境界も軸エンティティプロパティによりカスタマイズできます (saxes_properties参照).

axesflag

  軸の描画方法を指定するためにこのオプションを指定することができます. 値には 0 から 5の範囲の整数を指定します :

  axesflag=0

    プロットの周囲に何も描画されません (axes_visible=["off" "off"];box="off").

  axesflag=1

    軸が描画され, y軸が左に表示されます (axes_visible=["on" "on"];box="on",y_location="left").

  axesflag=2

    プロットは目盛のない箱で囲われます (axes_visible=["off" "off"];box="on").

  axesflag=3

    軸が描画され, y軸が右に表示されます (axes_visible=["on" "on"];box="off",y_location="right").

  axesflag=4

    軸がフレームの中心に描画され,箱は描画されません (axes_visible=["on" "on"];box="off",x_location="middle", y_location="middle").

  axesflag=5

    `axesflag=4`に似た軸がフレームの中心に描画されます. 違いは箱が描画されることです (axes_visible=["on" "on"];box="on",x_location="middle",y_location="middle").

  axesflag=9

    軸が描画され, y軸が左に表示されます (axes_visible=["on" "on"];box="off",y_location="left"). これがデフォルト値です

  軸の特性も軸エンティティプロパティによりカスタマイズできます (axes_properties参照).

## その他の情報

デフォルトで, 連続プロットは重ね書きされます. 前のプロットを 消去するには, `clf()` を使用してください.

デモを参照するにはコマンド `plot2d()` を使用してください.

その他に以下のような高レベルplot2d 関数が存在します:

- plot2d2 は `plot2d` と同じですが,曲線は 区分定数と仮定されます.

- plot2d3 は`plot2d` と同じですが, 曲線は 垂直棒グラフとしてプロットされます.

- plot2d4 は `plot2d` と同じですが, 曲線は 垂直な矢印をでプロットされます.

## 例

    // x initialisation
    x=[0:0.1:2*%pi]';
    //単純なプロット
    plot2d(sin(x));
    clf();
    plot2d(x,sin(x));
    //複数のプロット
    clf();
    plot2d(x,[sin(x) sin(2*x) sin(3*x)])
    // フレームの次元を指定した複数プロット
    clf();
    plot2d(x,[sin(x) sin(2*x) sin(3*x)],rect=[0,0,6,0.5]);
    //凡例と目盛/スタイルを指定した複数プロット
    clf();
    plot2d(x,[sin(x) sin(2*x) sin(3*x)],..
           [1,2,3],leg="L1@L2@L3",nax=[2,10,2,10],rect=[0,-2,2*%pi,2]);
    // 等軸
    clf();
    plot2d(x,sin(x),1,frameflag= 4);
    // スケール
    clf();
    plot2d(x,sin(x),1,frameflag= 6);
    // 前のプロット/スタイルでオートスケール
    clf();
    plot2d(x,sin(x),-1);
    plot2d(x,2*sin(x),12);
    plot2d(2*x,cos(x),3);
    // 軸を右に
    clf();
    plot2d(x,sin(x),leg="sin(x)");
    a=gca(); // 軸エンティティのハンドル
    a.y_location ="right";
    // 軸の中心を (0,0) に
    clf();
    plot2d(x-4,sin(x),1,leg="sin(x)");
    a=gca(); // 軸エンティティのハンドル
    a.x_location = "origin";
    a.y_location = "origin";
    // plot2dで作成されたエンティティを操作 ...
    a=gca();
    a.isoview='on';
    a.children // 軸の子の一覧.
    // 2個のポリラインと1個の凡例からなる複合要素がある
    poly1= a.children(1).children(1); //ポリラインのハンドルをpoly1に保存
    poly1.foreground = 4; // スタイルを変更する別の方法...
    poly1.thickness = 3;  // ...曲線の太さを変更.
    poly1.clip_state='off'; // クリッピングの制御
    leg = a.children(2); // 凡例のハンドルをlegに保存
    leg.font_style = 9;
    leg.line_mode = "on";
    a.isoview='off';

## 参照

- plot
- plot2d1
- plot2d2
- plot2d3
- plot2d4
- clf
- xdel
- delete