source: issm/branches/trunk-larour-NatGeoScience2016/src/m/plot/plotmodel.m@ 21365

Last change on this file since 21365 was 21365, checked in by Eric.Larour, 8 years ago

CHG: handy trick to plot multiple calls of plotmodel!

File size: 3.5 KB
Line 
1function plotmodel(md,varargin)
2%At command prompt, type plotdoc for help on documentation.
3
4%First process options
5options=plotoptions(varargin{:});
6
7%get number of subplots
8subplotwidth=ceil(sqrt(options.numberofplots));
9
10%Get figure number and number of plots
11figurenumber=options.figurenumber;
12numberofplots=options.numberofplots;
13
14%if nlines and ncols specified, then bypass.
15if exist(options.list{1},'nlines'),
16 nlines=getfieldvalue(options.list{1},'nlines');
17else
18 nlines=ceil(numberofplots/subplotwidth);
19end
20
21if exist(options.list{1},'ncols'),
22 ncols=getfieldvalue(options.list{1},'ncols');
23else
24 ncols=subplotwidth;
25end
26
27%check that nlines and ncols were given at the same time!
28if ((exist(options.list{1},'ncols') & ~exist(options.list{1},'ncols')) | (~exist(options.list{1},'ncols') & exist(options.list{1},'ncols')))
29 error('plotmodel error message: nlines and ncols need to be specified together, or not at all');
30end
31
32%go through subplots
33if numberofplots,
34
35 %Create figure
36 f=figure(figurenumber);
37 if strcmpi(getfieldvalue(options.list{1},'clf','on'),'on'),
38 clf;
39 end
40 if strcmpi(getfieldvalue(options.list{1},'visible','on'),'off'),
41 set(f,'Visible','Off');
42 end
43
44 if exist(options.list{1},'figposition'), % {{{
45 figposition=getfieldvalue(options.list{1},'figposition');
46 if ischar(figposition),
47 if strcmpi(figposition,'larour'),
48 set(gcf,'Position',[1604 4 1594 1177]);
49 elseif strcmpi(figposition,'larour2'),
50 set(gcf,'Position',[756 62 827 504]);
51 elseif strcmpi(figposition,'mathieu'),
52 set(gcf,'Position',[300 1 1580 1150]);
53 elseif strcmpi(figposition,'fullscreen'),
54 set(gcf,'Position',get(0,'ScreenSize'));
55 elseif strcmpi(figposition,'halfright'),
56 screen=get(0,'ScreenSize');
57 left=screen(1); bott=screen(2); widt=screen(3); heig=screen(4)-25;
58 set(gcf,'Position',fix([left+widt/2 bott widt/2 heig]));
59 elseif strcmpi(figposition,'halfleft'),
60 screen=get(0,'ScreenSize');
61 left=screen(1); bott=screen(2); widt=screen(3); heig=screen(4)-25;
62 set(gcf,'Position',fix([left bott widt/2 heig]));
63 elseif strcmpi(figposition,'square'),
64 screen=get(0,'ScreenSize');
65 left=screen(1); bott=screen(2); widt=min(screen(3)-25,screen(4)-25);
66 set(gcf,'Position',fix([left+(screen(3)-widt) bott widt widt]));
67 elseif strcmpi(figposition,'portrait'),
68 %reformat with letter paper size (8.5" x 11")
69 screen=get(0,'ScreenSize');
70 left=screen(1); bott=screen(2); widt=screen(3); heig=screen(4)-25;
71 portrait=fix([left+widt-(heig*8.5/11) bott heig*8.5/11 heig]);
72 set(gcf,'Position',portrait)
73 elseif strcmpi(figposition,'landscape'),
74 %reformat with letter paper size (8.5" x 11")
75 screen=get(0,'ScreenSize');
76 left=screen(1); bott=screen(2); widt=screen(3); heig=screen(4)-25;
77 landscape=fix([left+widt-(heig*11/8.5) bott heig*11/8.5 heig]);
78 set(gcf,'Position',landscape)
79 else
80 disp('''figposition'' string not supported yet');
81 end
82 else
83 set(gcf,'Position',figposition);
84 end
85 end % }}}
86
87 %Use zbuffer renderer (snoother colors) and white background
88 set(f,'Renderer','zbuffer','color',getfieldvalue(options.list{1},'figurebackgroundcolor','w'));
89
90 %Go through all data plottable and close window if an error occurs
91 try,
92 for i=1:numberofplots,
93 plot_manager(getfieldvalue(options.list{i},'model',md),options.list{i},subplotwidth,nlines,ncols,i);
94 %List all unused options
95 displayunused(options.list{i})
96 end
97 catch me,
98 %figure(figurenumber),close;
99 rethrow(me);
100 end
101else
102 error('plotmodel error message: no output data found. ');
103end
Note: See TracBrowser for help on using the repository browser.