Skip to content
Snippets Groups Projects
Select Git revision
  • e6f1a53e6059afc5bc501768c34bac13903070e2
  • master default protected
  • 6.x protected
  • madysson
  • 5.x protected
  • asm
  • time-varying-information-set
  • 4.6 protected
  • dynare_minreal
  • dragonfly
  • various_fixes
  • 4.5 protected
  • clang+openmp
  • exo_steady_state
  • declare_vars_in_model_block
  • julia
  • error_msg_undeclared_model_vars
  • static_aux_vars
  • slice
  • aux_func
  • penalty
  • 6.4 protected
  • 6.3 protected
  • 6.2 protected
  • 6.1 protected
  • 6.0 protected
  • 6-beta2 protected
  • 6-beta1 protected
  • 5.5 protected
  • 5.4 protected
  • 5.3 protected
  • 5.2 protected
  • 5.1 protected
  • 5.0 protected
  • 5.0-rc1 protected
  • 4.7-beta3 protected
  • 4.7-beta2 protected
  • 4.7-beta1 protected
  • 4.6.4 protected
  • 4.6.3 protected
  • 4.6.2 protected
41 results

Shocks.cc

Blame
  • scatter_plots.m 5.32 KiB
    function scatter_plots(X,xp,vnames,plotsymbol, fnam, dirname, figtitle, xparam1, options_)
    % scatter_plots(X,xp,vnames,plotsymbol, fnam, dirname, figtitle, xparam1, options_)
    % Pairwise scatter plots of the columns of x and y after Monte Carlo filtering
    % Inputs:
    %  - X              [double]    nxk matrix with columns containing behavioural sample
    %  - xp             [double]    mxk matrix with columns containing non-behavioural sample
    %  - vnames         [char]      vector of variable names (default = numeric labels 1,2,3 etc.)
    %  - plotsymbol     [char]      plt symbol (default = '.' for npts > 100, 'o' for npts < 100
    %  - fnam           [char]      figure name
    %  - dirname        [char]      directory name
    %  - figtitle       [char]      figure title
    %  - xparam1        [double]    parameter vector
    %  - options_       [struct]    option structure
    %
    % Written by Marco Ratto
    % Joint Research Centre, The European Commission,
    % marco.ratto@ec.europa.eu
    
    
    % Copyright © 2017 European Commission
    % Copyright © 2017-2023 Dynare Team
    %
    % This file is part of Dynare.
    %
    % Dynare is free software: you can redistribute it and/or modify
    % it under the terms of the GNU General Public License as published by
    % the Free Software Foundation, either version 3 of the License, or
    % (at your option) any later version.
    %
    % Dynare is distributed in the hope that it will be useful,
    % but WITHOUT ANY WARRANTY; without even the implied warranty of
    % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    % GNU General Public License for more details.
    %
    % You should have received a copy of the GNU General Public License
    % along with Dynare.  If not, see <https://www.gnu.org/licenses/>.
    
    [n,p] = size(X);
    
    nflag = 0;
    if nargin >=3
        nflag = 1;
    end
    
    if nargin<4 || isempty(plotsymbol)
        if n*p<100
            plotsymbol = 'o';
        else 
            plotsymbol = '.';
        end
    end
    
    if nargin<5 || isempty(fnam)
        fnam='scatter_plot';
    end
    if nargin<6 || isempty(dirname)
        dirname='';
        nograph=1;
        options_.nodisplay=0;
    else
        nograph=0;
    end
    if nargin<7 || isempty(figtitle)
        figtitle=fnam;
    end
    if nargin<8
        xparam1=[];
    end
    
    figtitle_tex=strrep(figtitle,'_','\_');
    
    fig_nam_=fnam;
    
    hh_fig=dyn_figure(options_.nodisplay,'name',figtitle);
    set(hh_fig,'userdata',{X,xp})
    
    bf = 0.1;
    ffs = 0.05/(p-1);
    ffl = (1-2*bf-0.05)/p;
    if p>1
        fL = linspace(bf,1-bf+ffs,p+1);
    else
        fL = bf;
    end
    for i = 1:p
        for j = 1:p
            h = axes('position',[fL(i),fL(p+1-j),ffl,ffl]);
            if i==j
                h1=gsa.cumplot(X(:,j));
                set(h,'Tag','cumplot')
                set(h1,'color',[0 0 1],'LineWidth',1.5)
                if ~isempty(xparam1)
                    hold on, plot(xparam1([j j]),[0 1],'k--')
                end
                if j<p
                    set(gca,'XTickLabel',[],'XTick',[]);
                else
                    grid off
                end
                set(gca,'YTickLabel',[],'YTick',[]);
            else
                plot(X(:,i),X(:,j),[plotsymbol,'b'])
                set(h,'Tag','scatter')
    
                if ~isempty(xparam1)
                    hold on, plot(xparam1(i),xparam1(j),'s','MarkerFaceColor',[0 0.75 0],'MarkerEdgeColor',[0 0.75 0])
                end
                hold off;
                if i<p
                    set(gca,'YTickLabel',[],'YTick',[]);
                else
                    set(gca,'yaxislocation','right');
                end
                if j<p
                    set(gca,'XTickLabel',[],'XTick',[]);
                end
            end
            if nflag == 1
                set(gca,'fontsize',9);
            end
            if i==1
                if nflag == 1
                    if options_.TeX
                        ylabel(vnames(j,:),'Rotation',45,'interpreter','latex', ...
                            'HorizontalAlignment','right','VerticalAlignment','middle');
                    else
                        ylabel(vnames(j,:),'Rotation',45,'interpreter','none', ...
                            'HorizontalAlignment','right','VerticalAlignment','middle');
                    end
                else
                    ylabel([num2str(j),' '],'Rotation',90)
                end
            end
            if j==1
                if nflag == 1
                    if options_.TeX
                        title(vnames(i,:),'interpreter','latex','Rotation',45, ...
                              'HorizontalAlignment','left','VerticalAlignment','bottom')
                    else
                        title(vnames(i,:),'interpreter','none','Rotation',45, ...
                              'HorizontalAlignment','left','VerticalAlignment','bottom')            
                    end
                else
                    title(num2str(i))
                end
            end
            drawnow
        end
    end
    
    if ~nograph
        dyn_saveas(hh_fig,[dirname,filesep,fig_nam_],options_.nodisplay,options_.graph_format);
        if options_.TeX && any(strcmp('eps',cellstr(options_.graph_format)))
            fidTeX = fopen([dirname,'/',fig_nam_ '.tex'],'w');
            fprintf(fidTeX,'%% TeX eps-loader file generated by scatter_plots.m (Dynare).\n');
            fprintf(fidTeX,['%% ' datestr(now,0) '\n\n']);
            fprintf(fidTeX,'\\begin{figure}[H]\n');
            fprintf(fidTeX,'\\centering \n');
            fprintf(fidTeX,'\\includegraphics[width=0.8\\textwidth]{%s}\n',strrep([dirname,'/',fig_nam_],'\','/'));
            fprintf(fidTeX,'\\caption{%s.}',figtitle_tex);
            fprintf(fidTeX,'\\label{Fig:%s}\n',fig_nam_);
            fprintf(fidTeX,'\\end{figure}\n\n');
            fprintf(fidTeX,'%% End Of TeX file. \n');
            fclose(fidTeX);
        end
    end