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

## Séquence d'appel

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

## 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.

fpf

  `fpf` permet de changer le format des nombres affichés sur les courbes de niveau, en utilisant la syntaxe du C (par exemple `fpf="%.3f"`). Définir `fpf` à " " implique qu'aucun niveau sera affiché sur les courbes. Si `fpf` n'est pas défini, le format par défaut est celui utilisé dans la fonction contour2d.

## 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`.

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];
    gcf().color_map = h;
    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]; gcf().color_map = h; clf(); contourf([],[],z,[-6:-1,-logspace(-5,0,10),logspace(-5,0,10),1:8],0*ones(1,m))

## Voir aussi

- contour
- contour2di
- plot2d