Accueil > Gnuplot > Méthodes

Méthodes

Dernier ajout : 13 octobre 2007.

Articles de cette rubrique

    13 octobre 2007

  • Surfaces et lignes de niveaux avec Gnuplot

    Voici un fichier permettant de tracer
    - une surface d’équation z=f(x,y)
    - une ou des lignes de niveaux z= constante
    - une ligne x = constante
    - une ligne y = constante

    JPEG - 48.1 ko

    Le script se trouve dans le fichier surface.gp suivant :

    Zip - 980 octets
    surface.gp.zip

    Pour l’utiliser, voici ma méthode :
    - ouvrir le fichier surface.gp en le modifiant si besoin
    - lancer gnuplot : dans une console, taper gnuplot
    - lancer le scrpt : taper load "surface.gp"
    - on peut faire tourner le graphique à l’aide de la souris
    - fermer la fenêtre
    - faire un reset : taper reset
    - modifier si besoin le fichier
    - avec les flèches, on rappelle les commandes précédentes pour continuer

    Voici le code du script :

    #--------------------- définition de la fonction
    f(x,y)=x*x+y*y

    #--------------------- Lignes de niveau x=xval
    xval=2
    dx=0.1
    lignex(x,y)= (x>= xval-dx && x<=xval ? f(x,y):1/0)

    #--------------------- Lignes de niveau y=yval
    yval=3
    dy=0.1
    ligney(x,y)= (y>= yval-dy && y<=yval ? f(x,y):1/0)

    #------------------- lignes de niveaux z=zval
    zval=30
    set clabel ’z =%4.3g’
    # ATTENTION :dé/commenter les deux lignes suivantes pour afficher/enlever les lignes de niveaux
    set contour surface
    set cntrparam levels discrete zval
    # si on veut des lignes de niveaux régulières : de 10 en 10, de 0 à 100
    #set cntrparam levels incr 0,10,100

    #--------------------- Borne de x et y
    xmin=-5
    xmax=5
    set xrange[xmin:xmax]
    ymin=-7
    ymax=7
    set yrange[ymin:ymax]

    #-------------------- Borne de z
    zmin=0
    zmax=100
    #set zrange[zmin:zmax]

    #--------------------------------- définition du maillage
    # dm est le nombre de division par unité
    dm=4
    nx= dm*(xmax -xmin)+1
    ny= dm*(ymax -ymin)+1
    set isosamples nx,ny

    #--------------------------------- définition de la taille du graphique
    coefx =1
    coefy = 1
    set size coefx,coefy

    #-------------------------------- Graduation des axes
    set xtics 1
    set ytics 1
    set ztics 10

    #-------------------------------- Angle de vie
    set view 39,16

    #-------------------------------- Définition des labels
    #set title "Exemple de surface"
    set xlabel "x"
    set ylabel "y"
    set zlabel "z"

    #-------------------------------- Gestion des parties cachées, des couleurs
    #set hidden3d
    #set nosurface
    #set pm3d
    #set palette gray

    #------------------------------- Affichage de la légende
    set label ’P( %0.3g’,xval, ’ ; %0.3g’,yval,’ ; %0.3g’,f(xval,yval)," )" at screen 0.85,0.20 left
    set label ’ligne x = %2.3g’,xval tc lt 1 at screen 0.85,0.15 left
    set label ’ligne y = %2.3g’,yval tc lt 4 at screen 0.85,0.10 left
    set label ’ligne z = %2.3g’,zval tc lt 3 at screen 0.85,0.05 left
    set label "P" at xval,yval,f(xval,yval)+5 font " ,24" front left

    #------------------------------ Affichage du graphique
    splot f(x,y) with lines lt 2 notitle,lignex(x,y) with lines lt 1 notitle, ligney(x,y) with lines lt 4 notitle
    #splot f(x,y) with lines lt 2
    #splot f(x,y) with lines lt 2,lignex(x,y) with lines lt 1
    #splot f(x,y) with lines lt 2,ligney(x,y) with lines lt 14


SPIP | | Plan du site | Suivre la vie du site RSS 2.0