% Importazione dei dati dentro MATLAB

% L'opzione ReadRowNames serve per definire la prima colonna con i nomi
% delle righe
X = readtable("grafuniv.xlsx",'ReadRowNames',true);

%
%
% Creazione dei grafici

% L'opzione subplot serve creare panelli multipli nella finestra grafica
% subplot(3,2,...) suddivide la finestra grafica in 3 righe e 2 colonne
% (ossia permette di accogliere 6 grafici)
% subplot(2,2,1) crea 3 pannelli e stabilisce che il prossimo grafico deve essere inserito nel primo grafico nel pannello in alto a sinistra
subplot(3,2,1)
% La funzione bar crea il grafico a barre
bar(X{:,1})
% la funzione MATLAB gca (get current axes) consente di avere un handle ale diverse proprietà del grafico  
% Ad esempio la funzione
% get(gca,'xticklabel') consente di recuperare le etichette delle barre
% sull'asse delle ascisse
% L'istruzione che segue specifica che le etichette delle barre devono
% essere i nomi delle righe della table X
set(gca,'xticklabel',X.Properties.RowNames)
title('Grafico a barre verticali')

% un modo alternativo per inserire i nomi delle righe come intestazione
% delle barre è quello di attribuire la proprietà categorical al vettore
% che contiene i nomi delle righe della table
% bar(categorical(X.Properties.RowNames),X{:,1})

% subplot(3,2,2) inserisce il secondo grafico nel pannello in alto a destra
subplot(3,2,2)
% La funzione barh crea il grafico a barre orizzontale
barh(X{:,1})
% Nel grafico a barre orizzontale andiamo a inserire i nomi della table
% nelle etichette dell'asse y
set(gca,'yticklabel',X.Properties.RowNames)  
title('Grafico a barre orizzontali')

% subplot(2,2,3) inserisce il terzo grafico nel pannello al centro  a sinistra
subplot(3,2,3)
% La funzione plot crea il grafico a linee
plot(X{:,1})
% Vado ad inserire i nomi della table
% nelle etichette dell'asse y
% La prprietà 'xtick',1:12 consente di specificare che ci devono essere 12
% etichette. La proprietà 'xticklabel' consente di specificare quali devono
% essere queste 12 etichette. In questo caso le 12 etichette corrispondono
% alle righe della table originaria
set(gca,'xtick',1:12,'xticklabel',X.Properties.RowNames,'XTickLabelRotation',60)  
title('Grafico a linee')

% subplot(3,2,4) inserisce il quarto grafico nel pannello al centro a destra
subplot(3,2,4)
% La funzione area crea il grafico ad area
area(X{:,1})
set(gca,'xtick',1:12,'xticklabel',X.Properties.RowNames,'XTickLabelRotation',60)  
title('Grafico ad area')

% subplot(3,2,4) inserisce il quainto grafico nel pannello in basso a sinistra
subplot(3,2,5)
% La funzione funnelchart di FSDA toolbox crea il grafico ad imbuto
% Osservazioni: nelle versioni vecchie di FSDA la funzione funnelchart si
% chiamava funnelplot
funnelchart(X{:,1},'Labels',X.Properties.RowNames);
title('Grafico ad imbuto')

%

% L'opzione ReadRowNames serve per definire la prima colonna con i nomi
% delle righe
X = readtable("graf_univ_2serie.xlsx",'Sheet','dati','ReadRowNames',true);

% L'istruzione
% B = categorical(A,valueset) 
% create una categoria (modalità) per ogni calore dentro valueset
% Questo per forzare Matlab ad utilizzare l'ordine presente dentro 
% X.Properties.RowNames
% Provate a vedere cosa succede se si elimina questa istruzione
mesi=categorical(X.Properties.RowNames,X.Properties.RowNames);

subplot(3,2,1)
% La funzione bar crea il grafico a barre
bar(mesi,X{:,1:2})

subplot(3,2,2)
% La funzione bar crea il grafico a barre orizzontale
barh(mesi, X{:,1:2})

subplot(3,2,3)
% colonne in pila
bar(mesi,X{:,1:2},'stacked')


subplot(3,2,4)
% colonne in pila al 100%
bar(mesi,X{:,1:2}./sum(X{:,1:2},2),'stacked')


subplot(3,2,5)
% area in pila al 100%
area(mesi,X{:,1:2}./sum(X{:,1:2},2))
