Grafici


Il comando mediante il quale MATLAB esegue un grafico lineare è plot. Se x e y sono due vettori aventi le stesse dimensioni, plot(x,y)esegue il grafico che unisce, con linea spezzata, i punti individuati da ciascuna coppia di elementi x1 y1 - x2y2 - etc. Se i punti sono in numero sufficiente (almeno una trentina), il grafico tracciato appare come una curva continua e non come una spezzata. Se si vuole per esempio costruire il grafico lineare della funzione y = (senx)/x nell’intervallo 0 ÷ 10, è necessario seguire i seguenti passi:

  1. definizione di un vettore x con un numero elevato di valori equispaziati tra 0 e 10;

  2. definizione di un vettore y in cui ciascun elemento è pari a (senxi)/xi dove xi è il corrispondente elemento di x;

  3. esecuzione del comando plot.

Il codice potrebbe quindi essere:

x=0:.1:10*pi;   oppure   x=linspace(0,10*pi,100);
y=sin(x)./x;
      (si noti l’utilizzo dell’operatore <./>)
plot(x,y)

L’output generato è rappresentato in fig. 1.

 
Fig.1
 
Il comando plot può anche essere usato nella forma plot(x,y,'s'), dove s è una stringa di caratteri scelti da una o più delle seguenti colonne:
 
Colore Connotazione dei punti Connotazione della linea
y   giallo .   punto -   continua (default)
m   magenta o   circolo :   tratteggiata
c   ciano x   croce -. punto-linea
r   rosso +   segno più -- a tratteggio lungo
g   verde *   asterisco  
b   blu (default) s   quadrato  
w   bianco d   diamante  
k   nero v   triangolo (in giù)  
  ^   triangolo (in su)  
  <   triangolo (verso sinistra)  
  >   triangolo (verso destra)  
  p   pentagramma  
  h   esagramma  
 
Utilizzando nell’esempio precedente il comando plot(x,y,'r:'), si ottiene il grafico di fig. 2.
 
Fig. 2
 
Mediante il comando grid è possibile far comparire una griglia di riferimento sul grafico. Ad un grafico possono inoltre essere assegnati alcuni elementi di testo mediante i seguenti comandi:
 
title('XYZ') titolo del grafico
xlabel('XYZ') etichetta sull’asse orizzontale
ylabel('XYZ') etichetta sull’asse verticale
gtext('XYZ') testo posizionato nel grafico usando il mouse
 

Per default gli assi sono autoscalati, ovvero i valori estremi sono posti automaticamente in modo da comprendere nello spazio a disposizione tutti i punti del grafico. Se si vogliono modificare i valori estremi degli assi si deve utilizzare il comando axis nella forma axis([Xmin Xmax Ymin Ymax]). Se si desidera modificare solo in parte gli estremi dei due assi, è sufficiente indicare -inf e inf per gli estremi da lasciare invariati; per esempio axis([Xmin Xmax -inf inf]) cambia solo gli estremi dell’asse orizzontale.

Ad esemplificazione di quanto detto, si consideri il codice

x=0:.1:10*pi;
y=sin(x)./x;
plot(x,y)
axis([-inf inf -.5 1.5])
grid
title('(sinx)/x')
xlabel('x --->')
ylabel('y --->')

il cui output è rappresentato in fig. 3.

 
Fig. 3
 

Infine, il comando subplot ha la funzione di suddividere la stessa figura in più finestre nelle quali eseguire il comando plot. La sua forma di applicazione è subplot(m,n,p), dove m e n sono rispettivamente il numero di righe e di colonne in cui viene suddivisa la figura, e p è la finestra attiva entro la quale eseguire plot. La numerazione delle finestre segue l’ordine da sinistra verso destra e dal basso verso l’alto. A titolo di esempio si consideri il codice

x=0:.1:10;
y1=sin(x);
y2=cos(x);
y3=exp(x);
y4=log(x);
subplot(2,2,1)
plot(x,y1)
subplot(2,2,2)
plot(x,y2)
subplot(2,2,3)
plot(x,y3)
subplot(2,2,4)
plot(x,y4)

il cui output è rappresentato in fig. 4.

 
Fig. 4