# contour2d

2次元プロット上に曲面の等高線を描画

## 呼び出し手順

    contour2d(x,y,z,nz,[style,strf,leg,rect,nax])
                contour2d(x,y,z,nz,<opt_args>)

## 引数

x,y

  大きさ n1 および n2 の実数行ベクトル: グリッド.

z

  大きさ (n1,n2)の実数行列, グリッドにおける関数の値または曲面を定義する Scilab関数 `z=f(x,y)`.

nz

  等高線の値または等高線の数.

    `nz` が整数の場合,この値は, 以下のように zmin から zmax の範囲で等間隔にならんだ 等高線の数を指定します:

        z= zmin + (1:nz)*(zmax-zmin)/(nz+1)

    `zmin` および `zmax` の等高線は描画されない (一般にこれらは点となります)が, これらは以下のコマンドにより追加できる ことに注意してください.

        [im,jm] = find(z == zmin); // または zmax
        plot2d(x(im)',y(jm)',-9,"000")

    `nz` がベクトルの場合, `nz(i)` は i番目の等高線の値を指定します.

<opt_args>

  一連の命令 `key1=value1,key2=value2`,...を表します. ただし, `key1`,`key2,...`には以下のどれかを 指定できます:style, leg, rect, nax, strf または axesflag および frameflag (plot2d参照)

style,strf,leg,rect,nax

  plot2d参照. 引数 `style` は, 等高線で使用される破線の形式または色を指定します. その大きさは等高線の数と同じとする必要があります.

## 説明

`contour2d` は, 曲面`z=f(x,y)`の等高線を2次元プロットに描画します. `f(x,y)`の値は, `x` および `y`で指定されるグリッド点において 行列`z`で指定します.

等高線上に印字される浮動小数点数のフォーマットを `xset("fpf",string)`により変更することができます. ただし, `string` にはC言語の構文で (例えば `string="%.3f"`)でフォーマットを指定します. デフォルトのフォーマットに戻すには `string=""`と してください. 出力を抑制するには,`string=" "`を使用してください. この最後の機能は, legendsと組み合わせて 等高線の数値を通常の等高線上ではなく,凡例に表示する場合に有用です. (例を参照)

オプションの引数 `style,strf,leg,rect,nax`, は一連の命令`key1=value1, key2=value2`,...により 指定できます.ただし, key は `style`,`strf`, `leg`,`rect`,`nax` とすることが可能です. この場合, 順番には特別な意味はありません.

3次元曲面に等高線を描画するには,`contour` を使用してください.

## 例

contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11]);

## 例

    contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])
    // 等高線の値の出力形式を変更
    xset("fpf","%.2f")
    clf()
    contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])

    // 等高線の値を凡例に表示
    // いくつかの裏技を使用していることに注意してください...
    x = linspace(0,4*%pi,80);
    z = cos(x')*cos(x);
    clf(); f=gcf();
    xset("fpf"," ")  // 裏技 1: これにより等高線の値はt
                     //         等高線上に描画されなくなります
    f.color_map=jetcolormap(7);
    // 裏技2: 等高線とインターフェイスをとることなく凡例を右に表示するために
    // xmax 値を十分に大きくした rect を使用します.
    contour2d(x,x,z,-0.75:0.25:0.75,frameflag=3,rect=[0,0,5*%pi,4*%pi])
    // 裏技3: legendsを使用 (より実用的なlegend関数は等高線の一つの値が
    //         2つの曲線により構成される場合に動作しないことに注意してください.
    legends(string(-0.75:0.25:0.75),1:7,"lr");
    xtitle("Some level curves of the function cos(x)cos(y)")

## 参照

- contour
- contour2di
- plot2d