# contourf

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

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

                contourf(x, y, z, nz, [style, strf, leg, rect, nax])

## Аргументы

x, y

  два вещественных вектор-столбца размрерами `n1` и `n2`: сетка.

z

  вещественная матрица размерами `(n1,n2)`, значения функции.

nz

  значения уровней либо количество уровней.

  -

    Если `nz` - целое число, то его значение указывает количество кривых уровней, равномерно распределённых от `zmin` до `zmax` как показано ниже:

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

    Заметьте, что уровни `zmin` и `zmax` не рисуются (вообще, они сводятся в точку), но их можно добавить следующим образом:

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

  -

    Если `nz` - вектор, то `nz(i)` указывает значение `i`-той кривой уровня.

style, strf, leg, rect, nax

  см. `plot2d`. Аргумент `style` указывает цвета, которые требуется использовать для кривых уровней. Он должен быть того же самого размера, что и количество уровней.

## Описание

Функция `contourf` раскрашивает поверхность между двумя следующими друг за другом кривых уровней поверхности `z=f(x,y)` на двумерном графике. Значения `f(x,y)` указываются с помощью матрицы `z` в точках сетки, определённых через `x` и `y`.

Вы можете изменить формат чисел с плавающей запятой, печатаемых на уровнях, с помощью `xset("fpf",string)`, где `string` указывает форма в формате C-синтаксиса (например, `string="%.3f"`). Используйте `string=""` для переключения обратно в формат по умолчанию.

Введите команду `contourf()`, чтобы посмотреть демонстрацию.

## Примеры

    contourf(1:10,1:10,rand(10,10),5,1:5,"011"," ",[0,0,11,11])

contourf(1:10,1:10,rand(10,10),5,1:5,"011"," ",[0,0,11,11])

    function z=peaks(x,y)
    x1=x(:).*.ones(1,size(y,'*'));
    y1=y(:)'.*.ones(size(x,'*'),1);
    z =  (3*(1-x1).^2).*exp(-(x1.^2) - (y1+1).^2) ...
       - 10*(x1/5 - x1.^3 - y1.^5).*exp(-x1.^2-y1.^2) ...
       - 1/3*exp(-(x1+1).^2 - y1.^2)
    endfunction

    function z=peakit()
    x=-4:0.1:4;y=x;z=peaks(x,y);
    endfunction

    z=peakit();

    levels=[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8];
    m=size(levels,'*');
    n = fix(3/8*m);
    r = [(1:n)'/n; ones(m-n,1)];
    g = [zeros(n,1); (1:n)'/n; ones(m-2*n,1)];
    b = [zeros(2*n,1); (1:m-2*n)'/(m-2*n)];
    h = [r g b];
    xset('colormap',h);

    xset('fpf',' ');
    clf();
    contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8],0*ones(1,m))

    xset('fpf','');
    clf();
    contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8]);

function z=peaks(x,y) x1=x(:).*.ones(1,size(y,'*')); y1=y(:)'.*.ones(size(x,'*'),1); z = (3*(1-x1).^2).*exp(-(x1.^2) - (y1+1).^2) ... - 10*(x1/5 - x1.^3 - y1.^5).*exp(-x1.^2-y1.^2) ... - 1/3*exp(-(x1+1).^2 - y1.^2) endfunction

function z=peakit() x=-4:0.1:4;y=x;z=peaks(x,y); endfunction

z=peakit();

levels=[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8]; m=size(levels,'*'); n = fix(3/8*m); r = [(1:n)'/n; ones(m-n,1)]; g = [zeros(n,1); (1:n)'/n; ones(m-2*n,1)]; b = [zeros(2*n,1); (1:m-2*n)'/(m-2*n)]; h = [r g b]; xset('colormap',h); xset('fpf',' '); clf(); contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8],0*ones(1,m))

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

- contour
- contour2d
- contour2di
- plot2d