# contourf

courbes de niveaux 2D remplies d'une surface 3D

## Séquence d'appel

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

## Paramètres

x,y

  deux vecteurs lignes de taille n1 et n2.

z

  matrice réelle de taille (n1,n2), les valeurs de la fonction.

nz

  valeurs des niveaux ou nombre de niveaux

  -

    Si `nz` est un entier, sa valeur définit le nombre de courbes de niveaux espacées régulièrement entre zmin et zmax :

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

    Noter que les niveaux `zmin` et `zmax` ne sont pas dessinés (génériquement ils sont réduits à des points) mais peuvent être ajoutés avec

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

  -

    Si `nz` est un vecteur, `nz(i)` donne la valeur du ième niveau. Noter qu'il peut être utile pour voir les niveaux `zmin` et `zmax` d'ajouter une tolérance de l'ordre de %eps : `nz=[ zmin+%eps,..,zmax-%eps]` .

style,strf,leg,rect,nax

  voir `plot2d`. L'argument `style` définit les styles de pointillés ou les couleurs utilisés pour dessiner les courbes. Il doit être de même taille que le nombre de niveaux.

## Description

`contourf` remplit l'espace entre deux courbes de niveaux consécutives d'une surface `z=f(x,y)` sur un dessin 2D. Les valeurs de `f(x,y)` sont données par la matrice `z` aux points du plan définis dans `x` et `y`.

Il est possible de changer le format des nombres affichés sur les courbes de niveau en utilisant `xset("fpf",string)` où `string` précise le format comme en langage C (par exemple `string="%.3f"`). Utiliser `string=""` pour revenir au format par défaut.

Taper `contourf()` pour voir une démonstration de la fonction.

## Exemples

    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))

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

## Voir aussi

- contour
- fcontour
- fcontour2d
- contour2di
- plot2d
- xset