www.gusucode.com > optim 案例源码 matlab代码程序 > optim/plotPortfDemoGroupModel.m
function plotPortfDemoGroupModel(x1,x2) % plotPortfDemoGroupModel Helper function for portfolio optimization demo % Copyright 2010 The MathWorks, Inc. % Create figure figure2 = figure; % Create axes axes1 = axes('Parent',figure2,'XTick',[1 75 150 225]); xlim(axes1,[1 225]); ylim(axes1,[0 0.3]); box(axes1,'on'); grid(axes1,'on'); hold(axes1,'all'); % Plot bars (standard model); increase width a little so that bars can be % seen behind the group model's bars bar(x1,'FaceColor',[0 0 1],'EdgeColor',[0 0 1],'BarWidth',2.5,... 'Parent',axes1,... 'DisplayName','Standard'); % Plot bars (model with group constraints) idx = find(x2>.001); % don't plot negligiblely small elements of solution bar(idx,x2(idx),'FaceColor',[1 0 0],'EdgeColor',[1 0 0],'BarWidth',1.5,... 'Parent',axes1,... 'DisplayName','With group constraints'); % Create xlabel xlabel('Assets'); % Create ylabel ylabel('Fraction of investment'); % Create title title('225-asset problem') % Create legend legend1 = legend(axes1,'show'); set(legend1,... 'Position',[0.454285714285709 0.714285714285715 0.417857142857143 0.1]); % Create textbox annotation(figure2,'textbox',... [0.195642857142857 0.863920537540176 0.107928571428571 0.0595238095238109],... 'String',{'Group 1'},... 'HorizontalAlignment','center',... 'FitBoxToText','off',... 'LineStyle','none'); % Create textbox annotation(figure2,'textbox',... [0.465642857142857 0.863920537540176 0.107928571428571 0.0595238095238109],... 'String',{'Group 2'},... 'HorizontalAlignment','center',... 'FitBoxToText','off',... 'LineStyle','none'); % Create textbox annotation(figure2,'textbox',... [0.722655844155843 0.863920537540176 0.107928571428571 0.0595238095238109],... 'String',{'Group 3'},... 'HorizontalAlignment','center',... 'FitBoxToText','off',... 'LineStyle','none'); % Create doublearrow annotation(figure2,'doublearrow',[0.132142857142857 0.380952380952381],... [0.870428571428572 0.871165644171779],'Color',[0 0.498039215803146 0]); % Create doublearrow annotation(figure2,'doublearrow',[0.39142857142857 0.641071428571428],... [0.870428571428572 0.871165644171779],'Color',[0 0.498039215803146 0]); % Create doublearrow annotation(figure2,'doublearrow',[0.648928571428569 0.898571428571426],... [0.870428571428572 0.871165644171779],'Color',[0 0.498039215803146 0]); end