# contour2d

кривые уровней поверхности на двумерном графике

## Последовательность вызова

                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)` на двумерном графике. Значения `f(x,y)` указываются в матрице `z` в точках сетки, определённой через `x` и `y`.

Вы можете изменить формат чисел с плавающей запятой, печатаемых на уровнях, с помощью `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`. В этом случае порядок не имеет особого значения.

Используйте функцию `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]);

    clf()
    // Изменение формата печати уровней
    xset("fpf","%.2f")
    contour2d(1:10,1:10,rand(10,10),5,rect=[0,0,11,11])

xset("fpf","%.2f") 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: подразумевается, что номера уровней
    //           не рисуются на кривых уровней
    f.color_map=jetcolormap(7);

    // уловка 2: чтобы иметь возможность поместить легенду справа без
    //          наложения на кривые уровней, используйте rect с достаточно
    //          большим значением xmax
    contour2d(x,x,z,-0.75:0.25:0.75,frameflag=3,rect=[0,0,5*%pi,4*%pi])

    // уловка 3: используйте legends (заметьте, что наиболее практичная функция
    //          легенды не будет работать, когда один из уровней формируется
    //          двумя кривыми)
    legends(string(-0.75:0.25:0.75),1:7,"lr");
    xtitle("Некоторые уровни кривых функции cos(x)cos(y)")

x = linspace(0,4*%pi,80); z = cos(x')*cos(x);

clf(); f=gcf(); xset("fpf"," ")

f.color_map=jetcolormap(7);

contour2d(x,x,z,-0.75:0.25:0.75,frameflag=3,rect=[0,0,5*%pi,4*%pi])

legends(string(-0.75:0.25:0.75),1:7,"lr"); xtitle("Некоторые уровни кривых функции cos(x)cos(y)")

## Смотрите также

- contour
- contour2di
- plot2d