Combining IRFs derived under different parameter values on a single plot

Try with a consistent transpose:


figure('Name','Conditional and unconditional variance decomposition')
horizon_titles={'1-period','4-period','8-period','16-period','40-period'};


for k=1:size(oo_.conditional_variance_decomposition,2)
    subplot(2,3,k)

    ba=bar(squeeze(oo_.conditional_variance_decomposition(:,k,:)*100),'stacked','FaceColor','flat');
    ba(:,1).CData=[0     1     1];
    ba(:,2).CData=[1     0     1];
    ba(:,3).CData=[0.0  0.1  0.5];
    ba(:,4).CData=[1     1      0];
    ba(:,5).CData=[0.3020    0.7451    0.9333];
    ba(:,6).CData=[0.9882    0.8314    0.3569];
    ba(:,7).CData=[1.0000    0.0745    0.6510];

    vd_2d=squeeze(oo_.conditional_variance_decomposition(:,k,:))'*100;

    if any(vd_2d>0.3)
        xbarCnt = vertcat(ba.XEndPoints);
        ybarTop = vertcat(ba.YEndPoints);
        ybarCnt = ybarTop - vd_2d/2;
        txt = compose('%.1f%%',vd_2d);
        th = text(xbarCnt(:), ybarCnt(:), txt(:),'HorizontalAlignment', 'center', ....
            'VerticalAlignment', 'middle', 'Color', 'k','FontSize', 8);
    else;
    end


    xticklabels({'interest rate','investment','price of capital','capital','inflation','wage','consumption','output','labor','rental rate of capital'});
    ylim([0 120]);
    title(horizon_titles{k})
    set(gca,'FontSize',10, 'FontName','Times','FontWeight','normal');

    if k==1
        Lgnd=legend('productivitiy shock','preference','government spending','investment','monetary policy','price markup','wage markup');
        set(Lgnd, 'FontSize',10,'FontWeight','Normal','FontName','Times','Orientation','horizontal');
    end

end
1 Like