% 
% COSTRUZIONE DI UN GRAFICO
% 
% Si fa con l'istruzione "plot"; nella modalità più comune, si deve preparare un vettore di valori per
% le ascisse ed un vettore di valori per le ordinate, e poi si crea il
% grafico chiamando "plot"
keyboard
ww = 23;
figure(ww);
X=1:6;                % vettore delle ascisse  (qui è ad esempio un vettore di valori da 1 a 6)
V=[12 3 15 18 10 6];  % vettore delle ordinate
plot(X,V,'b-');       % grafico di V(X) mediante linea blu continua

W=[2 6 9 15 4 12];
hold on   
  % 'hold on' congela il contenuto del grafico; il prossimo grafico viene aggiunto
plot(X,W,'r-');
hold off  
  % 'hold off' scongela il contenuto del grafico; il prossimo cancella il contenuto attuale
plot(X,W,'go');  % grafico di W(X) mediante punti scollegati di colore verde
pause  % istruzione che permette di sospendere l'esecuzione per poter osservare ad esempio un grafico
       % relativo ad un risultato intermedio; l'esecuzione riprende premendo un tasto qualunque
semilogy(X,W,'b-'); % come "plot" ma con scala logaritmica nelle ordinate

semilogx(X,W,'b-'); % come "plot" ma con scala logaritmica nelle ascisse

loglog(X,W,'b-');   % come "plot" ma con scala logaritmica in entrambi gli assi

% perchè la scala logaritmica è molto utile:
X=1:300;
Y=2.^(-X);
plot(X,Y,'b-');
pause,
semilogy(X,Y,'b-');

xlabel('descr. asse x'); % crea l'etichetta per l'asse "x"
ylabel('descr. asse y');

title('titolo della figura');

a=1;
b=10;
c=1e-6;
d=1;
axis([a b c d]);  % cambia i limiti del grafico a  "a <= x <= b"  e  "c <= y <= d"

grid on     % inserisce una griglia tratteggiata
grid off    % toglie la griglia
grid minor  % infittisce la griglia

% ULTERIORI INFORMAZIONI SI OTTENGONO IMPARTENDO "help plot" DALLA RIGA DI
% COMANDO DI Matlab/Octave


% grafico di dati 2D: visualizzaizone con il comando "mesh": genera una superficie 3D mediante
% interpolazione lineare bi-dimensionale:
figure(1); 
x=0:0.025:1; y=0:0.025:1; z=0.1*sin(2*pi*10*(x'*y))+x'*y; 
mesh(y,x,z);
pause
for i=1:10
  view(-37.5-i*5,30+i*3);
  pause
end
%rotate3d  % NB: rotate3d funziona solo con matlab
