diff m-toolbox/classes/@aoplotter/singlePlots.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/m-toolbox/classes/@aoplotter/singlePlots.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,197 @@
+% SINGLEPLOT plots each input ao on a seperate figure.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% DESCRIPTION: SINGLEPLOT plots each input ao on a seperate figure.
+%
+% CALL:                   hfig = aoplotter.singlePlot(pl);
+%
+% OUTPUTS:
+%             hfig - an array of figure handles
+%
+% <a href="matlab:utils.helper.displayMethodInfo('aoplotter', 'singlePlots')">Parameters</a>
+%
+% VERSION:     $Id: singlePlots.m,v 1.2 2011/03/28 12:45:46 hewitson Exp $
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+function varargout = singlePlots(varargin)
+  
+  % Check if this is a call for parameters
+  if utils.helper.isinfocall(varargin{:})
+    varargout{1} = getInfo(varargin{3});
+    return
+  end
+  
+  % Collect input variable names
+  in_names = cell(size(varargin));
+  for ii = 1:nargin,in_names{ii} = inputname(ii);end
+  
+  % Get the plotter calling object
+  plotter = utils.helper.collect_objects(varargin(:), 'aoplotter');
+  
+  % Collect input plists
+  pl = utils.helper.collect_objects(varargin(:), 'plist');
+  pl = combine(pl, getDefaultPlist);
+  
+  hfig = [];
+  for kk=1:numel(plotter.data)
+    
+    % get current data object
+    d = plotter.data{kk};
+    
+    % Plot each figure on a seperate plot  
+    cfig = figure;
+    hls = plot(d.x, d.y);
+    
+    % Make axis labels
+    setPlotLabels(plotter, cfig, d);
+    
+    % Apply the figure properties from the plotter
+    applyPlotterPreferences(cfig, hls, plotter);
+    
+    % Apply procinfo properties
+    applyLineProperties(plotter, hls, d);
+    
+    % Apply legend properties
+    applyLegendProperties(plotter, d);
+    
+    % Store the handle
+    hfig = [hfig cfig];
+  end
+  
+  
+end
+
+function applyLegendProperties(plotter, d)
+  
+  legendFontSize = plotter.legendFontSize;
+  legendLocation = plotter.legendLocation;
+  includeLegend = plotter.includeLegend;
+  includeDescription = plotter.includeDescription;
+  
+  if includeLegend
+    
+    % make legend
+    name = utils.plottools.label(d.name);
+    desc = utils.plottools.label(d.description);
+  
+    if includeDescription && ~isempty(desc)
+      name = [name ': ' desc];
+    end
+    
+    [legh,objh,outh,outm] = legend(name, 'Location', legendLocation);
+    set(legh, 'FontSize', legendFontSize);
+  end
+  
+end
+
+% Apply the properties of the lines. First the values are taken from the
+% plotter, but if the plotinfo is filled and the override is set, then
+% those values will be used.
+function applyLineProperties(plotter, hl, d)
+  
+  lineWidth        = plotter.lineWidth;
+  linestyle        = plotter.lineStyle;
+  markerSize       = plotter.markerSize;
+  plotinfoOverride = plotter.plotinfoOverride;
+  colors           = plotter.plotcolors;
+  marker           = plotter.marker;
+  color            = colors{1};
+
+  % -- handle procinfo overrides
+  pinfo = d.plotinfo;
+  % line width
+  if ~isempty(pinfo) && ~isempty(pinfo.find('linewidth')) && plotinfoOverride
+    lineWidth = pinfo.find('linewidth');
+  end
+  % line style
+  if ~isempty(pinfo) && ~isempty(pinfo.find('linestyle')) && plotinfoOverride
+    linestyle = pinfo.find('linestyle');
+  end
+  % marker
+  if ~isempty(pinfo) && ~isempty(pinfo.find('marker')) && plotinfoOverride
+    marker = pinfo.find('marker');
+  end
+  % color
+  if ~isempty(pinfo) && ~isempty(pinfo.find('color')) && plotinfoOverride
+    color = pinfo.find('color');
+  end
+
+  % set color
+  set(hl, 'Color', color)
+  set(hl, 'LineStyle', linestyle);
+  set(hl, 'LineWidth', lineWidth);
+  set(hl, 'MarkerSize', markerSize);
+  set(hl, 'Marker', marker);
+end
+
+function setPlotLabels(plotter, cfig, d)  
+  hax = get(cfig, 'Children');
+  [xlbl, ylbl, zlbl] = aoplotter.makeAxisLabel(d);
+  h = xlabel(hax, xlbl);
+  setLabelProperties(h, plotter);
+  h = ylabel(hax, ylbl);
+  setLabelProperties(h, plotter);
+  h = zlabel(hax, zlbl);
+  setLabelProperties(h, plotter);
+end
+
+function setLabelProperties(h, plotter)
+  set(h, 'FontSize', plotter.labelFontSize);
+  set(h, 'FontName', plotter.axisFontName);
+end
+
+function applyPlotterPreferences(hfig, hls, plotter)
+    haxs = get(hfig, 'Children');
+    for kk=1:numel(haxs)
+      
+      % Fonts and lines
+      set(haxs(kk), 'FontSize', plotter.axisFontSize);
+      set(haxs(kk), 'FontWeight', plotter.axisFontWeight);
+      set(haxs(kk), 'FontName', plotter.axisFontName);
+      set(haxs(kk), 'LineWidth', plotter.axisLineWidth);
+      
+      % Grids
+      set(haxs(kk), 'GridLineStyle', plotter.gridLineStyle);
+      set(haxs(kk), 'MinorGridLineStyle', plotter.minorGridLineStyle);
+      
+      if plotter.showXGrid
+        set(haxs(kk), 'XGrid', 'on');
+      end
+      if plotter.showXMinorGrid
+        set(haxs(kk), 'XMinorGrid', 'on');
+      end
+      if plotter.showYGrid
+        set(haxs(kk), 'YGrid', 'on');
+      end
+      if plotter.showYMinorGrid
+        set(haxs(kk), 'YMinorGrid', 'on');
+      end
+      
+    end
+  
+end
+
+%--------------------------------------------------------------------------
+% Get Info Object
+%--------------------------------------------------------------------------
+function ii = getInfo(varargin)
+  if nargin == 1 && strcmpi(varargin{1}, 'None')
+    sets = {};
+    pl   = [];
+  else
+    sets = {'Default'};
+    pl   = getDefaultPlist;
+  end
+  % Build info object
+  ii = minfo(mfilename, 'plotter', 'ltpda', utils.const.categories.output, '$Id: singlePlots.m,v 1.2 2011/03/28 12:45:46 hewitson Exp $', sets, pl);
+end
+
+%--------------------------------------------------------------------------
+% Get Default Plist
+%--------------------------------------------------------------------------
+function pl_default = getDefaultPlist()
+  pl_default = plist();
+  
+end
+
+% END