% Skript slouží k:
% 1. Načtení souboru Data_neuro.xlsx
% 2. Výběru několika proměnných z W až AB a kategoriální Group_3kat (sloupeček C) nebo Gender_rek (sloupeček H)
% 3. Vizualizaci dat:
% a) 3D sloupkové grafy
% b) tečkový graf dle kategoriální proměnné
% c) maticový graf
% d) ikonové grafy
% Vytvořeno 20.7.2015; MG

clear all
close all


%% Načtení souboru Data_neuro.xlsx

filename='Data_neuro.xlsx';

% nastavení cesty do složky obsahující data - např.:
path='c:\Users\koritakova\Documents\Vyuka\Vicerozmerky a AKD\Vicerozmerky - vyuka\Bi8600c_Vícrozměrky_cvičení\2016\cv_01_grafy\';

file_path=fullfile(path,filename);
[num,txt] = xlsread(file_path);


%% Výběr proměnných

% výběr spojitých proměnných:
data=num(:,23:28);
nsub=size(data,1);
nrows=size(data,2);
var_desc=txt(1,23:28); % Popis dat - legenda
for i=1:numel(var_desc)
    var_desc{i}(var_desc{i}=='_')=' ';
end

% výběr kategoriální proměnné:
category_row = 3;
cat=num(:,category_row);
ncat=3;% Počet kategorií
cat_desc={'CN','MCI','AD'};


%% 3D sloupkový graf
spolu=1;
for ii=1:nrows
    for jj=1:ii
        if ii~=jj
            plot_id=(ii-2)*(nrows-1)+jj;
            tmp_x=data(:,ii);
            tmp_y=data(:,jj);
            tmp_data=[tmp_x,tmp_y];
            if spolu==1
                f1=figure(1);
                set(f1,'name','3D sloupkový graf','units','normalized','outerposition',[0 0 1 1])
                subplot(nrows-1,nrows-1,plot_id)
            else
                f1=figure;
                set(f1,'name','3D sloupkový graf','units','normalized','outerposition',[0 0 1 1])
            end 
                hold on
                hist3(tmp_data,[10 10])
                xlabel(var_desc{ii})
                ylabel(var_desc{jj})
                grid on
                view(3)
        end
    end
end


%% Tečkový graf dle kategorie
% f2=figure;
% set(f2,'name','Tečkový graf dle kategorie','units','normalized','outerposition',[0 0 1 1])
lut=colormap(hsv(ncat));
for ii=1:nrows
    for jj=1:ii
        if ii~=jj
            plot_id=(ii-2)*(nrows-1)+jj;
            
            if spolu==1
                f2=figure(2);
                set(f2,'name','Tečkový graf dle kategorie','units','normalized','outerposition',[0 0 1 1])
                subplot(nrows-1,nrows-1,plot_id)
            else
                f2=figure;
                set(f2,'name','Tečkový graf dle kategorie','units','normalized','outerposition',[0 0 1 1])
            end
            for cat_id=1:ncat
                tmp_x=data(cat==cat_id,ii);
                tmp_y=data(cat==cat_id,jj);
                tmp_data=[tmp_x,tmp_y];
                hold on
                plot(tmp_x,tmp_y,'x','Color',lut(cat_id,:),'linewidth',1)
                xlabel(var_desc{ii})
                ylabel(var_desc{jj})
                grid on
            end
            legend(cat_desc)
        end
    end
end


%% Maticový graf
f3=figure;
set(f3,'name','Maticový graf','units','normalized','outerposition',[0 0 1 1])
for ii=1:nrows
    for jj=1:nrows
        plot_id=(ii-1)*(nrows)+jj;
        subplot(nrows,nrows,plot_id)
        if ii~=jj
            tmp_x=data(:,ii);
            tmp_y=data(:,jj);
            %             tmp_data=[tmp_x,tmp_y];
            hold on
            plot(tmp_x,tmp_y,'x','Color','b','linewidth',1)
            xlabel(var_desc{ii})
            ylabel(var_desc{jj})
            grid on
        else
            hold on
            hist(data(:,ii))
            xlabel(var_desc{ii})
            grid on
        end
    end
end


%% Ikonový graf
% http://www.mathworks.com/help/stats/examples/visualizing-multivariate-data.html

subdesc = 10:20; 
for ii=1:numel(subdesc)
    sub_labels{ii}=num2str(subdesc(ii));
end

f4=figure;
set(f4,'name','Ikonový graf')
glyphplot(data(subdesc,:), 'glyph','face', 'varLabels',var_desc,'obslabels',sub_labels);
title('Ikonový graf vybraných subjektů');
