function lg=layergraph5(lg)
% Function for Layer Graph representation
% lg=layergraph5(lg)
% lg : structure with data for layer graph representation
% (see 'buildlgstruct' function)
%
% Beta version
% (c) 2006 - CPOH
% Grupo de Control Predictivo y Optimizacin Heurstica.
% Universidad Politcnica de Valencia - Spain.
% http://ctl-predictivo.upv.es
%%
% Vector auxiliar distancia normalizada al cero
auxj=lg.slayer;
maxauxj=max(lg.slayer);
%auxj=auxj/max(lg.slayer)*100;
%% Trazado Pareto Front
% Calculo para decidir la distribucin (subplot) de las graficas en la figura.
% gfsf : filas
% gfsc : columnas
if lg.nobj==3
gfsf=1;
gfsc=3;
else
gfs=sqrt(lg.nobj);
gfsf=round(gfs);
gfsc=gfsf;
if gfsf^2<lg.nobj
gfsc=gfsc+1;
end
end
lg.layout=[gfsf gfsc];
%% Trazado
lg.figuras=zeros(1,2);
lg.axis=[];
lg.figuras(1)=figure;
% mapa de color
% color blanco [1 1 1]
% color negro [0 0 0]
if size(lg.pref,1)==lg.numind
cm=colormap(hot(40));
%cm=colormap(gray(25));
%cm=cm(4:24,:); %escala de colores
numcol=size(cm,1); %numero de colores diferentes
%sprefmax=max(lg.pref);
%sprefmin=min(lg.pref);
end
for ii=1:lg.nobj
eval(['subplot(' num2str(gfsf) ',' num2str(gfsc) ',' num2str(ii) ')'])
eval(['xlabel(''\bf J' num2str(ii) ' (J' num2str(ii) ' units) '')'])
hold on;
for kk=lg.numind:-1:1
color=lg.pref(kk)/lg.worstpref;
color=round((numcol-1)*color+1);
color=cm(color,:);
plot(lg.spf(kk,ii),auxj(kk),'+','MarkerEdgeColor',color);
end
axis([lg.minpf(1,ii) lg.maxpf(1,ii) 0 maxauxj])
lg.axis=[lg.axis;gca];
end
%% Trazado Pareto Set
% Calculo para decidir la distribucin (subplot) de las graficas en la figura.
% gfsf : filas
% gfsc : columnas
if lg.npar==3
gfsc=3;
gfsf=1;
elseif lg.npar==1
gfsc=2;
gfsf=1;
else
gfs=sqrt(lg.npar);
gfsf=round(gfs);
gfsc=gfsf;
if gfsf^2<lg.npar
gfsc=gfsc+1;
end
end
%lg.layout=[objfilas objcolumnas parfilas parcolumnas];
lg.layout=[lg.layout gfsf gfsc];
% Trazado
lg.figuras(2)=figure;
for ii=1:lg.npar
eval(['subplot(' num2str(gfsf) ',' num2str(gfsc) ',' num2str(ii) ')'])
eval(['xlabel(''\bf \theta' num2str(ii) ' (\theta' num2str(ii) ' units) '')'])
hold on;
for kk=lg.numind:-1:1
color=lg.pref(kk)/lg.worstpref;
color=round((numcol-1)*color+1);
color=cm(color,:);
plot(lg.sps(kk,ii),auxj(kk),'+','MarkerEdgeColor',color);
end
if lg.minps(1,ii)==lg.maxps(1,ii)
lg.minps(1,ii)=lg.minps(1,ii)-0.1;
lg.maxps(1,ii)=lg.maxps(1,ii)+0.1;
end
axis([lg.minps(1,ii) lg.maxps(1,ii) 0 maxauxj])
lg.axis=[lg.axis;gca];
end
lg.selpoint=[];