Un tel environnement ne peut avoir de sens sans la possibilité de sorties graphiques. Scilab possède un jeu suffisamment étendu de fonctions graphiques 2d et 3d. De plus il permet l'appel à des fonctions d'affichage de bas niveau qui, le cas échéant, peuvent permettre de concocter des rendus de toute sorte.
-->x=0:0.1:10; -->plot(x.^2) -->plot(x,x.^2) // rendu identique a la premiere syntaxe -->plot(x,x.^2,'sur les x','sur les y','En titre')Cette fonction sera délaissée ou seulement utilisée pour avoir un affichage rapide en ligne du tracé d'un tableau de valeurs.
Il est tout à fait possible d'ouvrir plusieurs fenêtres
simultanément. Par défaut, lors d'un appel à une fonction graphique
(plot ...), la fenêtre n^&cir#circ;0 est ouverte. La commande
xset('window',num) permet d'ouvrir et/ou de basculer
dans différentes fenêtres.
-->x=0:0.1:2*%pi; -->plot(x,exp(cos(x))) // affichage dans le fenêtre courante -->xset('window',1) // ouvre la fenêtre 1 -->plot(x,cos(exp(x))) // affichage dans le fenêtre 1 -->xset('window',0 // rétabli le fenêtre 0 comme fenêtre courante -->xdel(1) // ferme la fenêtre 1Apparaît la commande xdel4.1 qui ferme la fenêtre graphique.
Pour effacer le contenu d'un fenêtre taper xclear(num)4.2 ou xbasc(num).
En premier lieu il est possible comme dans le cas de la fonction plot de ne spécifier qu'un tableau de valeurs ou un couple abscisses ordonnées plot2d(x,y)4.3
-->x=0:0.1:10; -->plot2d(x.^2) -->plot2d(x,x.^2)Néanmoins, sous cette forme on peut afficher plusieurs courbes simultanément, pour cela il suffit de passer en argument une matrice en lieu et place des abscisses et ordonnées; les colonnes sont les valeurs à tracer :
--> x=[0:0.1:2*%pi]'; --> plot2d(x,[sin(x) sin(2*x) sin(3*x)])ou encore
--> x=[0:0.1:2*%pi]';xx=[x,x+2*%pi,x+4*%pi]; --> plot2d(xx,[sin(x) sin(2*x) sin(3*x)])La règle étant : soit, comme dans ce cas, les abscisses sont représentées par un vecteur colonne et donc commun à l'ensemble des ordonnées (fig 4.3), soit il y a autant de colonnes en abscisses et en ordonnées, et les couples abscisses ordonnées sont affichés (fig 4.4).
plot2d offre la possibilité de définir un certain nombre d'attributs que peuvent être la couleur du trait, continu ou pointillé, les valeurs maximales et minimales ... Toutes ces options possèdent une syntaxe de la forme
Dans la suite, est donné un aperçu de quelques options utiles de
plot2d.
nom_option : style=...
La couleur ou le mode de tracé (en continu ou point) est géré par le nom d'option style. C'est un tableau ligne d'entiers, avec un attribut pour chaque courbe, i.e. de taille le nombre de colonnes des ordonnées. Il spécifie la couleur (par défaut 1,2,...nombre de colonnes de ``y''). Une valeur positive correspond à une couleur (4.64.4) et une valeur négative ou nulle remplace l'affichage continu par un symbole (voir la table de correspondance 4.5).
Voici un exemple de commande (voir résultat figure 4.7)
--> x=[0:0.1:2*%pi]'; --> plot2d(x,[sin(x) cos(x)],style=[-7,14])Il est tout à fait possible de passer le style en argument implicite4.5 en faisant
--> plot2d(x,[sin(x) cos(x)],[-7,14])le tableau style doit impérativement être en 3ème position.
nom_option : rect=...
A chaque appel de plot2d les valeurs maximales et minimales sont évaluées pour offrir un affichage qui permet de voir la courbe en entier. Dans le cas de plusieurs appels successifs de la commande plot2d, les courbes sont superposées mais de plus, en cas de changement de valeurs extrêmes, les courbes sont ré-affichées pour permettre une visualisation simultanée (voir exemple qui suit)
--> x1=[0:0.1:2*%pi]'; --> x2=[-5:0.1:5]'; --> plot2d(x1,sin(x1),1); --> plot2d(x2,exp(x2),2);
Néanmoins en spécifiant une option de la forme rect=[xmin,ymin,xmax,ymax], sont imposées les coordonnées de la fenêtre d'affichage. Ceci peut permettre par exemple un ``zoom'' sur une partie de la courbe4.6.
nom_option : leg=...
Il est agréable de lire explicitement sur un graphique rempli de courbes qui correspond à quoi. Pour cela, il est possible d'utiliser l'option leg=chaîne de caractères pour voir apparaître en bas à droite de la courbe un petit trait de couleur ou le symbole de la courbe suivi de sa nomination. Dans le cas de plusieurs courbes, est passé en argument de leg une seule chaîne de caractère avec les différents champs séparés par un ``@''.
--> x=[0:0.1:2*%pi]; --> plot2d(x,[sin(x) cos(x)],leg='sin(x)@cos(x)');
nom_option : nax=...
Il est possible de choisir le nombre de graduation et de sous graduation par axe en spécifiant nax=[nx,Nx,ny,Ny], Nx et Ny représentent le nombre de graduation, tandis que nx et ny celui de la sous graduation (entre chaque graduation).
Pour obtenir un affichage suivant une échelle logarithmique sur l'axe vertical ou horizontal, il suffit de rajouter dans l'appel de plot2d deux caractères prenant les valeurs ``n'' pour normal et ``l'' pour logarithme de la manière suivante
-->x=logspace(1,3,10); -->plot2d('ln',x,log(x)) \\ axe x en echelle log, y echelle normale -->plot2d('ll',x,x.^2) \\ axes x et y en echelle log
nom_option : strf='xyz'
Il y a de multiples façon d'afficher un graphique, en recalculant les échelles pour obtenir a courbe entière, afficher les axes, graduation isométrique... Ces attributs ont une réelle importance si l'on cherche à afficher sur le même système d'axes plusieurs courbes ou parties de courbe possédant des caractéristiques différentes comme le nombre de point par exemple.
Pour introduire l'utilité de l'option strf dans plot2d partons sur le dernier exemple cité, avec deux tableaux de dimension différentes, de tel sorte qu'un appel de plot2d ne peux suffire
-->x0=linspace(0,3,30); -->x1=linspace(1,2,20); -->plot2d(x0,sin(x0)) // premier appel -->plot2d(x1,cos(x1),3,strf='000')//second sans changer d'axes
D'une manière générale et sytématique strf='xyz' avec la table de correspondance
x | |
0 | Pas de légende |
1 | Légendes affichées (voir leg) |
y | |
0 | Utilisation des bornes et échelle du dernier appel de plot2d |
1 | Echelle standard, bornes spécifiées par rect |
2 | Echelle standard, bornes calculées suivant les valeurs de x et y |
3 | Echelle isométrique, bornes spécifiées par rect |
4 | Echelle isométrique, bornes calculées suivant les valeurs de x et y |
5 | Graduation élargie, bornes spécifiées par rect |
6 | Graduation élargie, bornes calculées suivant les valeurs de x et y |
z | |
0 | rien n'est dessiné autour du dessin |
1 | les axes sont dessinés, l'axe y est dessiné à gauche. |
2 | le dessin est entouré d'une boîte sans graduations. |
3 | les axes sont dessinés, l'axe y est dessiné à droite |
4 | les axes sont dessinés au milieu du cadre |
5 | les axes sont dessinés de maninière à se croiser au point (0,0). |
Si ce point (0,0) ne se situe pas dans le cadre, les axes n'apparaissent pas. |
-->t=0:0.1:2*%pi; -->plot2d(t,[cos(t'),sin(t')],[-1,2]); -->legends(["sin(t)";"cos(t)"],[-1,2])La syntaxe générale est legends( nom_courbes, couleur, position ), avec
La commande xtitle permet d'enjoliver les sorties graphiques par l'ajout d'un titre et d'intitulés d'axes.
-->xtitle('Utilisation de Legends')
plot2d2 fonction escalier | plot2d3 barres verticales |
plot2d3 parcours fléché | champ1 champ de vecteur (colorés) |
contour2d de | grayplot de |
Il existe différentes fonctions d'affichage avec pour chacun une syntaxe particulière, le lecteur avisé consultera le manuel des fonctions correspondantes. En voici une énumération avec une visualisation dans les différentes variantes.
histplot histogramme | errbar barres verticales d'erreurs |
polarplot Tracé en coordonnées polaires | graypolarplot équivalent de grayplot |
Il existe également des fonctions d'affichage spécifique utilisé en théorie du signal et automatisme4.8
bode | chart |
gainplot | zgrid |
plot3d | plot3d1 |
plot3d3 | contour |
hist3d | param3d |