Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
gnuplot [Le 18/03/2015, 08:50] G-Tux [Avec un fichier de configuration] |
gnuplot [Le 21/12/2021, 00:19] wiki-corrector-bot passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Hardy calcul_numérique}} | + | |
+ | {{tag>calcul_numérique education}} | ||
---- | ---- | ||
Ligne 28: | Ligne 29: | ||
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://gnuplot|gnuplot]]**. | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://gnuplot|gnuplot]]**. | ||
+ | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://gnuplot-x11|gnuplot-x11]]** pour la console vers l'écran graphique normal. | ||
==== À partir des sources ==== | ==== À partir des sources ==== | ||
Indispensable pour pouvoir profiter des options de [[gnuplot#Completion Bash et Historique|complétion et d'historique]]. C'est pour cette raison que cette doc a été écrite. | Indispensable pour pouvoir profiter des options de [[gnuplot#Completion Bash et Historique|complétion et d'historique]]. C'est pour cette raison que cette doc a été écrite. | ||
- | Les sources de la dernière version de gnuplot sont disponibles sur [[http://sourceforge.net/projects/gnuplot/files/|sourceforge]]. Cette dernière version, numérotée 4.4, apporte plusieurs nouveautés dont l'intégration d'un terminal lua/tikZ (export vers code LaTeX/tikZ destiné à être compilé via pdfLaTeX pour produire un fichier pdf) et la gestion de la transparence. Ne pas hésiter à jeter un coup d'œil à la documentation et FAQ disponibles (en anglais) sur le [[http://www.gnuplot.info/|site officiel]] | + | Les sources de la dernière version de gnuplot sont disponibles sur [[https://sourceforge.net/projects/gnuplot/files/|sourceforge]]. Cette dernière version, numérotée 4.4, apporte plusieurs nouveautés dont l'intégration d'un terminal lua/tikZ (export vers code LaTeX/tikZ destiné à être compilé via pdfLaTeX pour produire un fichier pdf) et la gestion de la transparence. Ne pas hésiter à jeter un coup d'œil à la documentation et FAQ disponibles (en anglais) sur le [[http://www.gnuplot.info/|site officiel]] |
Après avoir téléchargé les sources, se référer au fichier INSTALL contenu dans l'archive. Afin de bénéficier du terminal tikZ (paquet liblua5.1-0-dev nécessaire) il est important d'ajouter un lien symbolique par la commande suivante : | Après avoir téléchargé les sources, se référer au fichier INSTALL contenu dans l'archive. Afin de bénéficier du terminal tikZ (paquet liblua5.1-0-dev nécessaire) il est important d'ajouter un lien symbolique par la commande suivante : | ||
Ligne 157: | Ligne 158: | ||
Puis : | Puis : | ||
<code> | <code> | ||
+ | gnuplot> reset | ||
gnuplot> set terminal png | gnuplot> set terminal png | ||
gnuplot> set output "exemple_1.png" | gnuplot> set output "exemple_1.png" | ||
Ligne 167: | Ligne 169: | ||
\\ | \\ | ||
- | ^ Code ^ Fonction mathématique ^-^ Code ^ Fonction mathématique ^ | + | ^ Code ^ Fonction mathématique ^-^ Code ^ Fonction mathématique ^ |
| abs (x)| valeur absolue d’un nombre réel|-| abs (z)| module d’un nombre complexe| | | abs (x)| valeur absolue d’un nombre réel|-| abs (z)| module d’un nombre complexe| | ||
| acos (x) | arc cosinus|-| acosh (x)| arc cosinus hyperbolique| | | acos (x) | arc cosinus|-| acosh (x)| arc cosinus hyperbolique| | ||
Ligne 185: | Ligne 187: | ||
| log (x)| logarithme népérien|-| log10 (x)| logarithme décimal| | | log (x)| logarithme népérien|-| log10 (x)| logarithme décimal| | ||
| norm (x)| fonction de répartition de la loi normale N (0; 1)|-| pi|nombre π (3,14...)| | | norm (x)| fonction de répartition de la loi normale N (0; 1)|-| pi|nombre π (3,14...)| | ||
- | |rand (x)| nombre au hasard|-| real (z)| partie réelle d’un nombre complexe| | + | | rand (x)| nombre au hasard|-| real (z)| partie réelle d’un nombre complexe| |
| sgn (x)| fonction signe|-|sin (x)| sinus| | | sgn (x)| fonction signe|-|sin (x)| sinus| | ||
| sinh (x)| sinus hyperbolique|-| sqrt (x)| racine carrée| | | sinh (x)| sinus hyperbolique|-| sqrt (x)| racine carrée| | ||
| tan (x)| tangente|-| tanh (x)| tangente hyperbolique| | | tan (x)| tangente|-| tanh (x)| tangente hyperbolique| | ||
+ | |||
+ | |||
+ | ^ Code ^ Convention ^ | ||
+ | | x, y| Coordonnées cartésiennes, pour de la 2D| | ||
+ | | x, y, z| Coordonnées cartésiennes, pour de la 3D| | ||
+ | | r| Coordonnées polaires, pour le rayon vecteur| | ||
+ | | t| Coordonnées polaires, pour l'angle vecteur (compris entre [0:2*pi])| | ||
+ | |u| Coordonnées paramétriques, pour une courbe| | ||
+ | |u, v| Coordonnées paramétriques, pour une surface| | ||
+ | |||
==== Avec un fichier de configuration ==== | ==== Avec un fichier de configuration ==== | ||
Ligne 204: | Ligne 216: | ||
Ce fichier pourrait par exemple contenir : | Ce fichier pourrait par exemple contenir : | ||
- | |||
<code> | <code> | ||
set terminal jpeg | set terminal jpeg | ||
- | set output "Gnuplot1.jpg" | + | set output "Gnuplot5.jpg" |
set title ' Flux en fonction du temps: ' | set title ' Flux en fonction du temps: ' | ||
set xlabel ' Temps (jj/mm)' | set xlabel ' Temps (jj/mm)' | ||
Ligne 214: | Ligne 225: | ||
set timefmt "%Y-%m-%d" | set timefmt "%Y-%m-%d" | ||
set xtics format "%d-%m" | set xtics format "%d-%m" | ||
+ | set style fill transparent solid 0.5 noborder | ||
plot "flux.dat" using 1:2 with lines,\ | plot "flux.dat" using 1:2 with lines,\ | ||
- | "flux.dat" using 1:3 with lines | + | "flux.dat" using 1:3 with boxes lc rgb"green" |
</code> | </code> | ||
- | Fichier "flux.dat" (l'extension n'a pas d'importance) : | + | Créer le fichier de données (l'extension n'a pas d'importance) : |
- | <file> | + | <file gnuplot flux.dat> |
2014-11-10 151 105 | 2014-11-10 151 105 | ||
2014-11-11 140 91 | 2014-11-11 140 91 | ||
Ligne 230: | Ligne 242: | ||
2014-12-10 130 89 | 2014-12-10 130 89 | ||
2014-12-12 147 8</file> | 2014-12-12 147 8</file> | ||
- | {{ gnuplot:gnuplot1.jpg?direct&300 |}} | + | {{ gnuplot:gnuplot5.jpg?direct&300 |}} |
- | ===Autre exemple pour un graphique en 3D=== | + | ===Exemple pour la fonction paramétrique=== |
- | <note tip> | + | <file gnuplot gnuplot2.gnu> |
- | Pour les graphiques en **2D**, la commande est : "**plot** xxxxxxxxx", | + | reset |
- | mais pour les graphiques en **3**D, il faut utiliser : "**splot** xxxxxxxxx". | + | set terminal png |
- | </note> | + | set parametric |
- | Créer le fichier, avec la fonction : | + | set output "essai3.png" |
- | <file> | + | set grid xtics ytics |
- | set terminal jpeg | + | set samples 300 |
- | set output "Gnuplot1.jpg" | + | plot sin(4*t), cos(6*t)</file> |
- | splot [-4*pi:3*pi] cos (x), sin (x) | + | puis : |
+ | <code> | ||
+ | gnuplot | ||
+ | gnuplot> load "gnuplot2.gnu" | ||
+ | </code> | ||
+ | Résultat : | ||
+ | {{ ::gnuplot:essai4.png?direct&300 |}} | ||
+ | \\ | ||
+ | |||
+ | ===Autre exemple de graphique (avec double axe X et Y)=== | ||
+ | |||
+ | Créer les fichiers : | ||
+ | <file gnuplot LR.dat> | ||
+ | # mois température moyenne (°C) Ensoleillement(H) - sources données : http://www.infoclimat.fr | ||
+ | Jan 5,9 84 | ||
+ | Fév 6,9 111 | ||
+ | Mar 8,7 174 | ||
+ | Avr 11,1 212 | ||
+ | Mai 14,3 239 | ||
+ | Jun 17,5 272 | ||
+ | Jui 19,8 305 | ||
+ | Aou 19,6 277 | ||
+ | Sep 17,8 218 | ||
+ | Oct 14,2 167 | ||
+ | Nov 9,4 107 | ||
+ | Déc 6,6 85 | ||
</file> | </file> | ||
- | Sauvegardez le fichier, puis | + | <file gnuplot gnuplot3.gnu> |
+ | reset | ||
+ | set terminal png | ||
+ | set output "La Rochelle.png" | ||
+ | set title textcolor rgb "blue" "Données météorologiques de La Rochelle de 1961 à 1990\n(données issues de http://www.infoclimat.fr)" | ||
+ | set key outside below; set key title "Légende"; set key box reverse; set key box lw 2 lc 4 # Légende | ||
+ | set grid # Grille de fond | ||
+ | set label 1 textcolor rgb "orange" "305 heures" at 2,20 centre; set arrow 1 from 3.5,20 to 6,19.2 # Info | ||
+ | set xtics textcolor rgb "green" border ("Jan" 0, "Fév" 1, "Mar" 2, "Avr" 3, "Mai" 4,"Jun" 5,"Jui" 6, "Aou" 7,"Sep" 8,"Oct" 9,"Nov" 10,"Déc" 11) # Mois sur axe des x | ||
+ | set x2range [-1:12]; set x2tics textcolor rgb "green" border ("1" 0, "2" 1, "3" 2, "4" 3, "5" 4,"6" 5,"7" 6, "8" 7,"9" 8,"10" 9,"11" 10,"12" 11) # Chiffres sur axe des x2 | ||
+ | set ytics textcolor rgb "red"; set ylabel textcolor rgb "red" "T. moyennes" # Colorisation | ||
+ | set y2label textcolor rgb "orange" "E. moyen"; set y2tics textcolor rgb "orange"; set y2range [70:350]# Colorisation + échelle axe y2 | ||
+ | set style fill transparent solid 0.3# Colorisation | ||
+ | plot [-1:12] [4:22] "LR.dat" using 3 axes x1y2 title "Ensoleillement (h/mois)" with boxes lc rgb "yellow",\ | ||
+ | "LR.dat" using 2 title "Températures (°C)" with linespoints lc rgb "red" | ||
+ | </file> | ||
+ | Sauvegardez les fichiers, puis | ||
<code> | <code> | ||
gnuplot | gnuplot | ||
- | gnuplot> load "GP.gnu" | + | gnuplot> load "gnuplot3.gnu" |
</code> | </code> | ||
Voici le résultat : | Voici le résultat : | ||
- | {{ gnuplot:gnuplot2.jpg?direct&300 |}} | + | {{ gnuplot:la_rochelle.png?direct&300 |}} |
- | Autre exemple : | + | ===Autre exemple pour un graphique 3D colorisé=== |
+ | <note tip> | ||
+ | Pour les graphiques en **2D**, la commande est : "**plot** xxxx xxxxx",\\ | ||
+ | mais pour les graphiques en **3D**, il faut utiliser : "**splot** xxxx xxxxx"\\ | ||
+ | et pour imprimer plusieurs graphiques sur une même page, renseigner : "**multiplot** xxxx xxxxx". | ||
+ | </note> | ||
+ | \\ | ||
Fichier avec données : | Fichier avec données : | ||
- | <file> | + | <file gnuplot mon_fichier.gnu> |
+ | reset | ||
set terminal png | set terminal png | ||
set output "essai1.png" # Nom du fichier de sortie | set output "essai1.png" # Nom du fichier de sortie | ||
Ligne 270: | Ligne 330: | ||
<code> | <code> | ||
gnuplot | gnuplot | ||
- | gnuplot> load "GP.gnu" | + | gnuplot> load "mon_fichier.gnu" |
</code> | </code> | ||
- | Voici le résultat : | + | Voilà : |
{{ gnuplot:essai3.png?direct&300 |}} | {{ gnuplot:essai3.png?direct&300 |}} | ||
\\ | \\ | ||
Ligne 503: | Ligne 563: | ||
* C'est gagné. Normalement, aucun des gestionnaires de mise à jour n'accepte de mettre Gnuplot à jour. ;-) | * C'est gagné. Normalement, aucun des gestionnaires de mise à jour n'accepte de mettre Gnuplot à jour. ;-) | ||
+ | =====Quelques exemples (différentes possibilités)===== | ||
+ | <file gnuplot essai5.gnu> | ||
+ | reset | ||
+ | set terminal jpeg | ||
+ | set output "essai5.jpg" | ||
+ | set key off | ||
+ | set xrang [0:10] | ||
+ | set yrang [0:10] | ||
+ | set style line 12 lt rgb "blue" | ||
+ | set style fill solid 0.6 | ||
+ | set object 1 rectangle at 1,1 size 8,2 fc rgb "yellow" | ||
+ | set object 2 circle at 4,6.2 radius 2 fc rgb "orange" front | ||
+ | set object 3 ellipse at 6,2.5 size 3,8 angle 40 fc rgb "blue" | ||
+ | set object 4 polygon from 8.6,4 to 8.6,8 to 8.2,8 to 9.2,9.6 \ | ||
+ | to 10,8 to 9.6,8 to 9.6,4 to 8.6,4 | ||
+ | plot NaN </file> | ||
+ | \\ | ||
+ | {{::gnuplot:essai5.jpg?direct 300|}} | ||
+ | \\ | ||
+ | Source [[https://commons.wikimedia.org/wiki/File:Bielefeld_population.svg?uselang=fr|Wikipédia (licence domaine publique)]] | ||
+ | {{::gnuplot:population.jpg ?direct 300|}} | ||
+ | \\ | ||
- | ===== Voir aussi ===== | + | Source [[https://commons.wikimedia.org/wiki/File:Mathc_art_01.jpg?uselang=fr?uselang=fr|Wikipédia (licence domaine publique)]] |
+ | {{ ::gnuplot:Mathc_art_01.jpg?direct 300|}} | ||
+ | \\ | ||
+ | Source [[https://commons.wikimedia.org/wiki/File:Signal_5.svg?uselang=fr?uselang=fr|Wikipédia (licence domaine publique)]] | ||
+ | {{ ::gnuplot:signal_5.jpg?direct 300|}} | ||
+ | \\ | ||
+ | ===== Voir aussi ===== | ||
+ | * [[Matplotlib]] | ||
* **(en)** [[http://www.gnuplot.info/|Le site officiel]] | * **(en)** [[http://www.gnuplot.info/|Le site officiel]] | ||
* (fr) [[http://enseignement.ensi-bourges.fr/cours/GNUPLOT/document/gnuplot.html|Cours sur Gnuplot]] | * (fr) [[http://enseignement.ensi-bourges.fr/cours/GNUPLOT/document/gnuplot.html|Cours sur Gnuplot]] | ||
- | * (fr) [[http://www.info.univ-angers.fr/aides/tutgnuplot.html|Tutoriel pour Gnuplot]] | + | * (fr) [[http://perso.ensta-paristech.fr/~kielbasi/docs/gnuplot.pdf|Aide - mémoire Gnuplot 4.0 de Nicolas Kielbasiewicz]] |
- | * (fr) [[http://perso.ensta-paristech.fr/~kielbasi/docs/gnuplot.pdf|Aide - mémoire Gnuplot 4.0 de Nicolas Kielbasiewicz]] | + | * (fr) [[https://bdesgraupes.pagesperso-orange.fr/UPX/Tutoriels/presentation_gnuplot.pdf|Tutoriel Gnuplot - Bernard Desgraupes - Université Paris Ouest]] |
- | * (fr) [[http://bdesgraupes.pagesperso-orange.fr/UPX/Tutoriels/presentation_gnuplot.pdf|Tutoriel Gnuplot - Bernard Desgraupes - Université Paris Ouest]] | + | * (fr) [[http://enseignement.ensi-bourges.fr/cours/GNUPLOT/document/gnuplot.html|Tutoriel Gnuplot]] FIXME lien inaccessible, le 2/03/2018 |
- | * (fr) [[http://enseignement.ensi-bourges.fr/cours/GNUPLOT/document/gnuplot.html|Tutoriel Gnuplot]] | + | |
---- | ---- | ||
//Contributeur : [[utilisateurs:laden]].// | //Contributeur : [[utilisateurs:laden]].// |