Gnuplot

logiciel de géométrie

Gnuplot est un logiciel interactif en ligne de commande qui sert à produire des représentations graphiques en deux ou trois dimensions de fonctions numériques ou de données. Le programme fonctionne sur de nombreux ordinateurs et systèmes d'exploitation (Linux, Windows, OS/2, VMS...) et peut envoyer les graphiques à l'écran ou dans des fichiers dans de nombreux formats. Gnuplot utilise également l'algorithme de Levenberg-Marquardt pour ajuster les paramètres d'une fonction numérique sur des données expérimentales.

Gnuplot

Description de l'image Gnuplot ellipsoid.svg.
Informations
Créateur Thomas Williams et Colin Kelley[1].
Développé par Ethan A Merritt (d)Voir et modifier les données sur Wikidata
Première version Voir et modifier les données sur Wikidata
Dépôt sf.net/p/gnuplot/gnuplot-mainVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Formats lus Gnuplot plot files (d)Voir et modifier les données sur Wikidata
Formats écrits Gnuplot plot files (d)Voir et modifier les données sur Wikidata
Type Application console (en)
Logiciel graphique
Logiciel de traçage (d)Voir et modifier les données sur Wikidata
Licence Licence libre[2] non compatible avec la GPL[3]
Documentation www.gnuplot.info/docs_4.6/gnuplot.pdf et www.gnuplot.info/docs_5.2/Gnuplot_5.2.pdfVoir et modifier les données sur Wikidata
Site web www.gnuplot.infoVoir et modifier les données sur Wikidata

Le programme peut être utilisé interactivement, et est accompagné d'une aide en ligne. L'utilisateur entre en ligne de commande des instructions qui ont pour effet de produire un tracé. Il est aussi possible d'écrire des scripts gnuplot qui, lorsqu'ils sont exécutés, génèrent un graphique.

Gnuplot est utilisé comme moteur de traçage d'Octave et de Maxima.

Le programme est distribué sous une licence de logiciel libre qui permet de copier et de modifier le code source du programme. Les versions modifiées du programme ne peuvent être distribuées que sous forme de fichiers correctifs. Contrairement à ce que son nom semble indiquer, Gnuplot ne fait pas partie du projet GNU, et n'a pas de lien particulier avec lui ou la FSF. Il n'utilise pas la licence de copyleft GPL.

Périphérique de sortie

modifier

Gnuplot fonctionne en interne en faisant abstraction du dispositif final de rendu. Ceci est implémenté via le concept de « terminal », que l'utilisateur peut spécifier par une commande.

Par défaut, et quelle que soit la plateforme, le rendu sera fait via une fenêtre utilisant la bibliothèque de fenêtrage standard du système d'exploitation (excepté sur MacOS, où la bibliothèque employée par Gnuplot, Qt, n'est absolument pas la bibliothèque de fenêtrage standard du système d'exploitation) et permettant une utilisation interactive à la souris (orientation de la vue pour les graphes en 3D notamment).

De nombreux terminaux sont disponibles (plus d'une trentaine) parmi lesquels SVG, PNG, PostScript, PDF, JPEG. La liste complète dépend de la version et des options de compilation utilisée, et peut être obtenue via la commande set terminal. On précisera le terminal souhaité via la commande

set terminal <nom-du-terminal>

On pourra préciser la taille du rendu (en pixels) en ajoutant une option size, par exemple:

set terminal pngcairo size 640,480

D'autres options sont possibles, mais dépendent du type de terminal.

En cas de sortie dans un fichier, il faut spécifier pour chaque plot le nom du fichier voulu avec la commande set output, par exemple:

set output "nom-fichier.png"

Exemple en ligne de commande

modifier
gnuplot> set terminal png
Terminal type set to 'png'
Options are ' small color'
gnuplot> set output "exemple1.png"
gnuplot> plot [t=-4:4] sin(t)

 

Exemple de script gnuplot

modifier
#définition de quelques variables
	xmin=-6.
	xmax=6.
	ymin=-4.
	ymax=4.

	xdec=0.25
	ydec=0.25
	pasx=1.0
	pasy=1.0

#initialisation du terminal
reset
set term x11
unset autoscale
set xr [xmin:xmax]
set yr [ymin:ymax]

#options
unset border
unset label
unset xtics
unset ytics

set title "fonction tangente"

#les axes
set arrow 3 from xmin,0 to xmax,0,3 lt -1 lw 0.5
set arrow 4 from 0,ymin to 0,ymax,3 lt -1 lw 0.5

#l'origine
set label "0" at xdec/2, -ydec

set label "x" at xmax - pasx, -ydec
set label "y" at -xdec, ymax - pasy/3

set label "1" at pasx, -ydec
set label "1" at -3*xdec/2, pasy
set label "-1" at -3*xdec/2, -pasy

set arrow from 1, -ydec/2 to 1, ydec/2 nohead lt -1

set arrow from 1.57, -ydec/2 to 1.57, ydec/2 nohead lt -1
set label "\34/2" at 1.57, -ydec center

set arrow from -1.57, -ydec/2 to -1.57, ydec/2 nohead lt -1
set label "-\34/2" at -1.57, -ydec center

set arrow from 3.1415, -ydec/2 to 3.1415, ydec/2 nohead lt -1
set label "\34" at 3.1415, -ydec center

set arrow from -3.1415, -ydec/2 to -3.1415, ydec/2 nohead lt -1
set label "-\34" at -3.1415, -ydec center

set arrow from 0, 0 to pasx, pasx lt 1
set arrow from 0, 0 to -pasx, -pasx lt 1

set arrow from -xdec/3, 1 to xdec/3, 1 nohead lt -1
set arrow from -xdec/3, -1 to xdec/3, -1 nohead lt -1

set arrow from -1.57, ymax to -1.57, ymin nohead lt 0
set arrow from 1.57, ymax to 1.57, ymin nohead lt 0

plot tan(x) title "tan" w l lt 3 lw 2

pause -1 "maintenant va créer un fichier au format png appuyer sur entrée"

set term png
set out "exemple2.png"
rep
set out
set term x11
pause -1 "touche entrée pour sortir"


Pour exécuter le script :

gnuplot> load 'exemple2.dat'

 

Exemple avec la commande multiplot

modifier

La commande « multiplot » permet d'insérer plusieurs graphiques dans une feuille.

 
Exemple avec commande multiplot.
Différents exemples.

Liens externes

modifier

Sur les autres projets Wikimedia :

  • (en) Site officiel : Contient des liens à la FAQ et vers les points de téléchargement

Notes et références

modifier
  1. https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright
  2. Le texte de la licence
  3. (en) « Gnuplot is freeware in the sense that you don't have to pay for it. However it is not freeware in the sense that you would be allowed to distribute a modified version of your gnuplot freely. »[1]