surfaces dans l'espace

le fonctionnement de base

Pour représenter la fonction f:(x,y)→ x ² -y², on peut saisir
f(x,y)=x**2-y**2
splot f(x,y)
ne pas oublier le s de splot.
ça bouge !

Si on fait un clic droit sur la figure, on s'aperçoit qu'on peut manipuler la figure: la faire tourner , la voir par en dessous, du dessus etc.

des améliorations

surface cachée

Pour que la surface ne soit plus transparente et que les zones cachées n'apparaissent pas
set hidden 3d
replot
		
Comme j'ai réduit fortement la fenêtre contenant l'image, j'ai supprimé les étiquettes des axes avec
set format x " "
 set format y " "
 set format z " "
		 

gradient de couleurs

la figure ci contre est obtenue avec
set pm3d
replot
		
. Il est possible de choisir son gradient de couleurs. Nous verrons cela plus loin.

augmenter la précision

Par défaut, l'intervalle des x et celui des y est divisé en 10. La surface est donc, vue du dessus composée de 100 carrés de couleurs. Si on veut l'augmenter, il suffit de saisir set isosamples 30,30 . D'abord les x puis les y. On a donc les carrés qui indiquent par leur couleur, leur hauteur approximative.

changer l'intervalle des x et celui des y

Pour représenter la fonction f définie sur [-2,5;2,5]X[-2,5;2,5] par f(x,y)=(x² +3y²)exp(1-(x²+y² ),on peut saisir:
f(x,y)=(x**2+3*y**2)*exp(1-(x**2+y**2))
 set xrange [-2.5:2.5]
 set yrange [-2.5:2.5]
 set pm3d
 set isosamples 30,30
 set hidden3d
 splot f(x,y)

faire apparaître les lignes de niveau

la commande de base

Pour obtenir la figure ci-contre,j'ai saisi:
set contour both
set key left bottom
replot
La deuxième ligne sert à mettre la légende en bas à gauche.
contour both met des lignes de niveau sur la surface et sur le plan du bas.
contour surface met des lignes de niveau seulement sur la surface.
contour base met des lignes de niveau seulement sur le plan du bas.

choisir ses lignes de niveau

si on désire représenter seulement les lignes de niveau correspondant à 2,5 et 2,6 on tapera le code

set cntrparam levels discrete 2.5, 2.6

changer la palette de couleurs

Pour obtenir la figure ci-contre, j'ai défini une nouvelle palette avec :

set palette defined (0 0 0 0,0.35 0 0.5 0.5,0.35 0.94 0.87 0.56, 1 0 0.5 0)

le premier chiffre est 0, il désigne la valeur de z minimale; il est suivi de 0 0 0 qui en mode rgb désigne la couleur noire.

le premier chiffre du deuxième groupe est 0.35 ; il désigne la valeur de z correspondant à 35% de l'échelle qui va du minimum au maximum. Il est suivi de 0 0.5 0.5 qui correspont à une couleur bleu vert. Entre le noir et le bleu vert, il se crée un dégradé.

Pour faire une coupure nette on redéfinit une couleur sable à 35% et on la dégrade avec un vert associé à 100%.

On a rajouté les lignes de code suivantes :


f(x,y)=(x**2+3*y**2)*exp(1-(x**2+y**2))
set xrange [-2.5:2.5]
set yrange [-2.5:2.5]
set isosamples 200,200
set hidden3d
set pm3d 
unset surface
set ticslevel 0
unset border
unset xtics
unset ytics
unset ztics
splot f(x,y)

Comme on a fortement augmenté le nombre de calculs, on a utilisé unset surface qui empêche gnuplot de se noyer dans les calculs. On a remis le plan de base à sa vraie place avec set ticslevel 0. unset border et les trois lignes suivantes suppriment les axes et les marques sur les axes

La figure a été obtenue dans un terminal png

Supprimer la surface

Ici, on a avec
unset surface
 set pm3d map
 unset key
 set title "cartographie de … f"
 replot
 

En enlevant le gradient de couleur et en augmentant la définition on obtient cela
unset pm3d
 set isosamples 60,60
 replot