Index Scilab

Graphiques avec Scilab

Graphe d'une fonction

La commande générale pour tracer des courbes, ou ensemble de points, est plot, par exemple,
x=-%pi:0.01:2*%pi;
plot(x,sin(x))
Plus généralement, pour des vecteurs X et Y de même taille, plot(X,Y) affiche les points de coordonnées (X(i),Y(i)).

Si X est omis, Scilab utilise X=1:n, où n=length(Y).

On peut compléter la commande plot en indiquant quelques propriétés graphiques, par exemple (voir help plot):
  • plot(X,Y,'-r') : relie les points par un trait plein bleu
  • plot(X,Y,'r--d') : relie les points par des traits en pointillés, et en marquant chaque point avec un losange (diamond)
  • … voir toutes les spécifications dans l'aide: LineSpec

Pour tous les détails de la fonction graphique plot, ou plot2d, voir l'aide: help plot ou help plot2d.

Mise en page avancée: titre, légende, limite des axes, quadrillage

On peut agrémenter facilement le graphique de:
  • title('un titre')
  • legend('legende 1','legende 2',…) : ajoute une légende, autant de noms que de courbes sur le graphique
  • xlabel('x') et ylabel : légendes pour les axes, abscisse et ordonnée
// Mise en forme plus esthétique de graphique
clc
fg=figure(0);clf();
x=-%pi:0.01:2*%pi;
y1=sin(x);
plot(x,y1,'r-.')
y2=cos(x);
plot(x,y2)

fgAxes=fg.Children;
fgAxes.x_location="origin";
fgAxes.y_location="origin";
fgAxes.grid=[1 1];
fgAxes.grid_style=[9,9]
fgAxes.data_bounds=[-%pi,-1.2;2*%pi,1.2];
fgAxes.tight_limits="on"
fgAxes.thickness=2;


Utilisation d'une palette de couleurs automatique

On souhaite parfois tracer de multiples courbes sur un même graphique, par exemple plusieurs courbes dépendant d'un ou plusieurs paramètres.
Pour les distinguer, il est intéressant de tracer chacune avec une couleur différente. Il faut donc être capable de générer automatiquement une couleur et l'utiliser pour tracer la courbe en cours.
Par exemple,
Faisceau coloré de courbes
jetcolormap(n) est une palette de couleurs: c'est un tableau de n lignes, pour n couleurs, et trois colonnes. Chaque ligne est une couleur au format (r,g,b), avec des valeurs comprises entre 0 et 1.
Il suffit de multipler cette matrice par 255 pour obtenir le format (r,g,b) "classique" qui peut être utilisé dans la fonction color, qui elle-même peut être utilisée comme paramètre dans la fonction plot2d.
clear;
fg=figure(0);clf;
x=0:.01:1

function z=phi(a,x)
    z=a*x.^2
endfunction

la=.1:.05:2
lc=255*jetcolormap(length(la))

for i=1:length(la)
    r=lc(i,1);g=lc(i,2);b=lc(i,3)
    a=la(i)
    plot2d(x,phi(a,x),style=[color(r,g,b)])
end


Voir aussi:

LongPage: h2: 3 - h3: 0