plotframe1.m.html | ![]() |
Source file: plotframe1.m | |
Directory: /home/rjl/git/rjleveque/clawpack-4.x/matlab | |
Converted: Sun May 15 2011 at 19:15:58 using clawcode2html | |
This documentation file will not reflect any later changes in the source file. |
% % PLOTFRAME1 plots data from a single Clawpack output file. % % PLOTFRAME1 is called from PLOTCLAW1, the driver script for Clawpack % graphics. PLOTFRAME1 uses parameters, defined in the user's % workspace, usually in the SETPLOT1 script, to determine what kind of % plot to create, and various other plotting options. % % See SETPLOT for a complete list of the parameters that the user can % set. % % The basic plot type available in 1d is a 1d line plot, with user % specified symbols. % % By specifying MAPPEDGRID == 1, a user defined function mapc2p will be % called % % See SETPLOT, PLOTCLAW1, MAPPEDGRID. if length(amrdata) == 0 disp(' '); disp(['Frame ',num2str(Frame),' does not exist ***']); return; end disp(' ') disp(['Frame ',num2str(Frame),' at time t = ',num2str(t)]); if exist('beforeframe')==2 beforeframe % make an m-file with this name for any other commands you % want executed before drawing each frame, for example % if you want to use axes to specify exactly where the % plot will be in the window, aspect ratio, etc. end set_value('maxlevels','MaxLevels',6); if (~exist('PlotStyle') & exist('plotstyle')) % Parse line spec style disp([' *** plotframe1 : ''plotstyle'' should be replaced by ',... '''PlotStyle''. Set SETPLOTSTYLE.']); if (~iscell(plotstyle)) % This provides backwards compatibility for plots with a single type. PlotStyle = {plotstyle}; else PlotStyle = plotstyle; end; end; set_value('pstyle','PlotStyle',{'b-'}); if (~iscell(PlotStyle)) error([' *** plotframe1 : PlotStyle must be a cell matrix. ',... 'Use ''setplotstyle''.']); end; [linestyle,linecolors,markerstyle] = get_plotstyle(pstyle,maxlevels); set_value('mappedgrid','MappedGrid',0); if (mappedgrid == 1) if (~exist('mapc2p')) error(' *** plotframe1 : MappedGrid == 1 but no mapc2p function was found'); end; end; clear_amrplot; create_amrplot(maxlevels); % Call to 'newplot' is needed in case the user has added any extra lines % to the plot (in afterframe, for example), using 'hold on/off'. 'newplot' % respects the hold on/off commands, whereas clear_amrplot and % create_amrplot do not. newplot; %============================================= % MAIN LOOP ON GRIDS FOR THIS FRAME: %============================================= qmin = []; qmax = []; for ng = 1:length(amrdata), gridno = amrdata(ng).gridno; level = amrdata(ng).level; mx = amrdata(ng).mx; xlow = amrdata(ng).xlow; dx = amrdata(ng).dx; data = amrdata(ng).data'; if UserVariable==1 % User has supplied a function to convert original q variables to % the variable which is to be plotted, e.g. Mach number, entropy. q = feval(UserVariableFile,data); else q = data(:,mq); end; amrdata(ng).q = q; xcenter = xlow + dx/2 + (0:(mx-1))*dx; xedge = xcenter(1:mx) + dx/2; % for compatibility with old matlab41/plotframe1 convention: x = xcenter; qmin = min([min(q), qmin]); qmax = max([max(q), qmax]); nplots = size(q,2); if (mappedgrid == 1) xp = mapc2p(xcenter); else xp = xcenter; end; if (nplots > 1) for n = 1:nplots, subplot(nplots,1,n) newplot; add_line2plot(xp,q(:,n),level,markerstyle{level},... linecolors{level},linestyle{level}); end; else add_line2plot(xp,q,level,markerstyle{level},... linecolors{level},linestyle{level}); end; if exist('aftergrid')==2 % make an m-file with this name for any other commands you % want executed at the end of drawing each grid aftergrid; end; end % loop on ng % add title and labels: if UserVariable == 1 str = sprintf('%s at time %8.4f',UserVariableFile,t); title(str,'fontsize',15); elseif (nplots == 1) str = sprintf('q(%d) at time %8.4f',mq,t); title(str,'fontsize',15); else for n = 1:nplots, subplot(nplots,1,n); str = sprintf('q(%d) at time %8.4f',n,t); title(str); end % loop on mq end % if UserVariable if exist('afterframe')==2 % make an m-file with this name for any other commands you % want executed at the end of drawing each frame % for example to change the axes, or add something to the plot afterframe; end