
Come fare un grafico su Matlab
In questa lezione ti spiego come fare un grafico 2D su Matlab.
Per seguire questa lezione devi già sapere cos'è e come si crea un array. In caso contrario, ti consiglio di dare prima un'occhiata alla lezione sugli array su Matlab
Crea un array x scrivendo una sequenza di numeri da 1 a 6.
Digita X = [ 1 2 3 4 5 6 ] sulla riga di comando e dai invio
>> X = [ 1 2 3 4 5 6 ]
x =
1 2 3 4 5 6
Questi valori sono le proiezioni dei punti del grafico sull'asse delle ascisse (x), l'asse orizzontale del diagramma cartesiano.
Adesso, crea un altro array Y per indicare le proiezioni dei punti sull'asse delle ordinate (y), l'asse verticale del diagramma cartesiano.
Digita Y=X.^2 sulla riga di comando e premi invio
>> Y=X.^2
Y =
1 4 9 16 25 36
Matlab legge i valori dell'array X, calcola il quadrato di ciascun valore e lo memorizza nell'array Y.
$$ 1^1 = 1 \\ 2^2 = 4 \\ 3^2 = 9 \\ 4^2 = 16 \\ 5^2 = 25 $$
Questi punti sono le proiezioni sull'asse verticale del diagramma cartesiano
A questo punto hai due array X e Y che formano le coordinate (x,y) dei punti del grafico.
Digita plot(X,Y) per disegnare il grafico tramite una linea spezzata.
>> plot(X,Y)
Questa funzione ha due parametri.
- Il primo parametro è l'array X con i valori delle coordinate sull'asse x
- Il secondo parametro è l'array Y con i valori delle coordinate sull'asse y
Matlab stampa sullo schermo un grafico a due dimensioni.
Ti faccio un altro esempio.
Quando i valori da considerare sono molti ti conviene usare la funzione linspace()
Ad esempio, digita X=linspace(1,100) per creare l'array X con i numeri interi da 1 a 100.
>> X = linspace(1,100);
In questo modo eviti di dover digitare uno a uno tutti i valori sull'asse X.
Poi crea il vettore Y dei valori sulle ordinate digitando Y=sqrt(X)
>> Y=sqrt(X);
Gli array X e Y sono composti da 100 elementi.
Nota. Quando calcoli un array con molti elementi aggiungi un punto e virgola alla fine del comando. In questo modo eviti di stampare i risultati sulla console e il calcolo diventa più veloce.
Ora digita plot(X,Y) per disegnare il grafico sullo schermo del PC
>> plot(X,Y)
Matlab stampa il grafico della radice quadrata da 1 a 100.
Come cambiare colore al grafico
Quando crei un grafico Matlab sceglie di default il colore della linea.
Per usare un colore specifico usa l'attribito Color
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y, 'Color' , 'red')
Matlab disegna il grafico utilizzando il colore che hai indicato nell'attributo Color.
In questo caso ho scelto il colore rosso (red). Quindi, la linea del grafico è rossa.
Altri colori predefiniti sono green, blue, cyan, magenta, yellow, black, white, none
Come modificare lo spessore della linea
Per modificare lo spessore della linea nel grafico usa l'attributo Linewidth seguito da un numero intero
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y, 'Color' , 'red', 'Linewidth', 3)
Matlab disegna il grafico utilizzando lo spessore indicato dopo l'attributo
In questo caso ho scelto uno spessore pari a 3 pixel.
Quando non utilizzi l'attributo Linewidth Matlab disegna le linee con uno spessore pari a 1.
Come disegnare i marker anziché la linea
Per disegnare il grafico puoi anche usare dei marker (marcatori) anziché una linea continua.
In questo caso devi indicare il simbolo da usare come marker. Ad esempio, digita
>> plot(X,Y, '+', 'Color' , 'red')
Matlab traccia il grafico visualizzando il simbolo + in ogni coordinata (x,y) del grafico.
Puoi usare come marcatori anche il punto ( . ) e i caratteri x, +, o, -, ecc.
L'effetto grafico che si ottiene usando come marker il punto è particolare utile.
Un altro marcatore molto utile è il doppio trattino '- -'
>> plot(X,Y, '--', 'Color' , 'red')
In questo caso Matlab disegna la linea del grafico tratteggiata.
Come aggiungere i nomi degli assi
Per aggiungere il nome delle variabili sugli assi cartesiani del grafico utilizza le funzioni xlabel e ylabel.
Ad esempio, nell'esempio precedente digita xlabel('x') dopo plot(X,Y)
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y)
>> xlabel('asse x')
Matlab aggiunge l'etichetta sotto l'asse orizzontale.
Poi digita ylabel('y')
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y)
>> xlabel('asse x')
>> ylabel('asse y')
Questo comando aggiunge l'etichetta a sinistra dell'asse verticale
Ora nel grafico sono visibili i nomi degli assi.
Come aggiungere il titolo del grafico
Per inserire il titolo del grafico usa la funzione title().
Ad esempio, riprendi l'esempio precedente e digita title('titolo del grafico') dopo la funzione plot()
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y)
>> xlabel('asse x')
>> ylabel('asse y')
>> title('titolo del grafico')
La funzione xtitle() visualizza il titolo del grafico sopra il diagramma cartesiano.
Come visualizzare la griglia
Per inserire visualizzare la griglia nel diagramma usa il comando grid on
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y)
>> xlabel('asse x')
>> ylabel('asse y')
>> grid on
Il comando grid on aggiunge le linee verticali e orizzontali nel diagramma cartesiano.
Nota. Per togliere la griglia usa invece il comando grid off
Come visualizzare una legenda
Per aggiungere una legenda al grafico usa la funzione legend()
Ad esempio, digita
>> X = linspace(1,100);
>> Y=sqrt(X);
>> plot(X,Y)
>> xlabel('asse x')
>> ylabel('asse y')
>> legend('radice quadrata di x');
Matlab mostra la legenda vicino al grafico
Come colorare l'area sotto il grafico
Per colorare l'area tra il grafico e l'asse orizzontale delle ascisse devi usare la funzione area().
Ad esempio, nell'esempio precedente digita area(X,Y) in sostituzione di plot(X,Y)
>> X = linspace(1,100);
>> Y=sqrt(X);
>> area(X,Y)
La funzione area() stampa il grafico colorando l'area sotto il grafico.
In questa lezione hai imparato a disegnare un grafico 2D.
Nelle prossime lezioni vedremo come personalizzare il grafico, fare gli istogrammi, i grafici 3D e altro ancora.