function scatter_mcf(X,Y,vnames,plotsymbol, fnam, dirname, figtitle, xparam1, options_, beha_name, non_beha_name) % scatter_mcf(X,Y,vnames,plotsymbol, fnam, dirname, figtitle, xparam1, options_, beha_name, non_beha_name) % % Written by Marco Ratto % Joint Research Centre, The European Commission, % marco.ratto@ec.europa.eu % Copyright © 2014-2016 European Commission % Copyright © 2014-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 . % PURPOSE: Pairwise scatter plots of the columns of x and y after % Monte Carlo filtering %--------------------------------------------------- % USAGE: scatter_mcf(x,y,vnames,pltsym,diagon) % or scatter_mcf(x,y) which relies on defaults % where: % x = an nxk matrix with columns containing behavioural sample % y = an mxk matrix with columns containing non-behavioural sample % vnames = a vector of variable names % (default = numeric labels 1,2,3 etc.) % pltsym = a plt symbol % (default = '.' for npts > 100, 'o' for npts < 100 Z=[X;Y]; [n,p] = size(Z); clear Z; 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 fnam=''; end if nargin<6 dirname=''; nograph=1; else nograph=0; end if nargin<7 figtitle=fnam; end if nargin<8 xparam1=[]; end if nargin<10 beha_name = 'BEHAVIOUR'; non_beha_name = 'NON-BEHAVIOUR'; end if nargin==10 non_beha_name = ['NON-' beha_name]; end figtitle_tex=strrep(figtitle,'_','\_'); fig_nam_=fnam; if ~nograph hh_fig=dyn_figure(options_.nodisplay,'name',figtitle); end 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=cumplot(X(:,j)); set(h1,'color',[0 0 1],'LineWidth',1.5) hold on, h2=cumplot(Y(:,j)); set(h2,'color',[1 0 0],'LineWidth',1.5) if ~isempty(xparam1) hold on, plot(xparam1([j j]),[0 1],'k--') end if j

i plot(X(:,i),X(:,j),[plotsymbol,'b']) hold on, plot(Y(:,i),Y(:,j),[plotsymbol,'r']) else plot(Y(:,i),Y(:,j),[plotsymbol,'r']) hold on, plot(X(:,i),X(:,j),[plotsymbol,'b']) end 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