Graphiques avec Scilab
Graphe d'une fonction
La commande générale pour tracer des courbes, ou ensemble de points, estplot
,
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 bleuplot(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 graphiquexlabel('x')
etylabel
: 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,
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