Des graphiques avec GNU Plot

Je teste ici la fonctionnalité « expérimentale » d’embarquer des graphiques ou des graphes de fonctions écrits avec une directive rST .. gnuplot:: (et ça marche très bien !).

Voir aussi

Boucle ripl
J’ai aussi intégré un boucle ripl dans ma page gnuplot.html, qui permet de voir (en temps réel) la sortie graphique évoluer dès que l’entrée du toplevel change.

Avertissement

Si les graphes suivants ne sont pas affichés, c’est probablement parce que votre navigateur ne supporte pas les images SVG. Dans ce cas, un seul conseil : adoptez Mozilla Firefox :) !

Exemples

Sinus, simple

Premier, \(x \mapsto \sin(x)\) :

plot sin(x)

Cosinus, avec une grille

Second, \(x \mapsto \cos(x*x+1.3)\) (avec une grille mise avec set grid). On peut forcer la taille avec l’option :size: pour la directive .. gnuplot:: :

set grid
plot cos(x*x+1.3)

Plusieurs graphiques sur une même fenêtre

Troisième, la fonction sigmoïde \(x \mapsto \frac{1}{1+\exp(-x)}\).

Note

À propos de la sigmoïde

Cette fonction est très utilisé dans le cours de Machine Learning, que j’ai suivis au S2 de mon M1 d’info, en tant que fonction de transfert pour les réseaux neuronaux.

Je présente donc quelques graphes de cette fonction, ainsi que d’autres alternatives avec l”arctangente ou la fonction signe.

Avertissement

Changement de GNU Plot 4.4 à 4.6.6

J’ai mis à jour GNU Plot sur ma machine le mardi 26 mars 2014, et la nouvelle version semble avoir brisé la rétrocompatibilité, notamment le comportement de la commande replot.

Avant, on pouvait mettre plusieurs graphiques sur une même fenêtre, avec la commande replot, qui gère les couleurs pour pouvoir différencier les différents graphiques.

Désormais, j’utilise plot f1(x),f2(x).

set grid
plot 1/(1+exp(-0.25*x)),1/(1+exp(-x)),1/(1+exp(-4*x))

Tableau(x)

On peut aussi faire des graphes, et en faire des colonnes :

set grid
plot 0.5+atan(x)/pi
set grid
plot 1/(1+exp(-x))
set grid
plot 0.5*(1+sgn(x))

Arctangente

Sigmoide

Signe

Mais des fois, c’est plus commode de mettre trois graphes dans un seul (plus comme plot f1(x) puis replot f2(x), mais avec plot f1(x),f2(x)) :

set grid
plot 0.5+atan(x)/pi,1/(1+exp(-x)),0.5*(1+sgn(x))

En 3D : une surface

set xrange [0:1]
set yrange [0:1]
splot x**4 + y**4, abs(x)+abs(y)

Une seconde surface

set view 60, 30, 0.85, 1.1
set samples 20, 20
set isosamples 21, 21
set contour base
set cntrparam levels auto 10
set xlabel "X axis"
set ylabel "Y axis"
set zlabel "Z axis"
set zlabel  offset character 1, 0, 0 font "" textcolor lt -1 norotate
splot x**2-y**2

Un dernier exemple

Inspiré de ce script.

unset border
set dummy t,y
set grid nopolar
set grid xtics nomxtics ytics nomytics noztics nomztics \
nox2tics nomx2tics noy2tics nomy2tics nocbtics nomcbtics
set grid layerdefault   linetype 0 linewidth 1.000,  linetype 0 linewidth 1.000
unset key
set label 1 "gnuplot" at 0, 1.2, 0 centre norotate front nopoint offset character 0, 0, 0
set label 2 "gnuplot" at 0.02, -0.6, 0 centre norotate front nopoint offset character 0, 0, 0
set arrow 1 from -0.1, 0.26, 0 to 0.18, -0.17, 0 head front nofilled linetype 5 linecolor rgb "#f0e442"  linewidth 4.000 size first 0.100,40.000,90.000
set parametric
set size ratio 1 1,1
set noxtics
set noytics
set xrange [ -1.00000 : 1.00000 ] noreverse nowriteback
set yrange [ -1.00000 : 1.60000 ] noreverse nowriteback
plot [t=-pi:pi]      sin(t),cos(t) with filledcurve xy=0,0 lt 15,            sin(t)/8-0.5,cos(t)/8+0.4 with filledcurve lt 3,                sin(t)/8+0.5,cos(t)/8+0.4 with filledcurve lt 3,                t/5,abs(t/5)-0.8 with filledcurve xy=0.1,-0.5 lt 1,     t/3,1.52-abs(t/pi) with filledcurve xy=0,1.8 lt -1

Conclusion

Ces exemples montrent un peu ce qu’on peut faire, très facilement, grâce aux extensions “non-officielles” de Sphinx (en l’occurence, l’extension gnuplot dans ce cas là).


Espace d’expérimentation

Pour les citations et les notes de bas de pages

Footnote

Lorem ipsum [1] dolor sit amet … [2]. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Citation

Lorem ipsum [c1] dolor sit amet … [c2]. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


A la fin de la page :

Footnotes

[1]Texte de la première note de bas de page.
[2]Texte de la seconde note de bas de page.

Citations

[c1]Texte de la première citation.
[c2]Texte de la seconde citation.