function a_plot = plot_bars(a_tests_db, title_str, props)
% plot_bars - Creates a bar graph comparing all DB rows in groups, with a separate axis for each column.
%
% Usage:
% a_plot = plot_bars(a_tests_db, title_str, props)
%
% Description:
%
% Parameters:
% a_tests_db: A tests_db object.
% title_str: (Optional) The plot title.
% props: A structure with any optional properties.
%
% Returns:
% a_plot: A object of plot_bars or one of its subclasses.
%
% See also: plot_abstract, plot_simple
%
% $Id$
%
% Author: Cengiz Gunay <cgunay@emory.edu>, 2006/03/13
% Copyright (c) 2007 Cengiz Gunay <cengique@users.sf.net>.
% This work is licensed under the Academic Free License ("AFL")
% v. 3.0. To view a copy of this license, please look at the COPYING
% file distributed with this software or visit
% http://opensource.org/licenses/afl-3.0.php.
if ~ exist('props', 'var')
props = struct;
end
if ~ exist('title_str', 'var')
title_str = '';
end
% Setup lookup tables
col_names = properTeXLabel(fieldnames(get(a_tests_db, 'col_idx')));
data = get(a_tests_db, 'data');
row_idx = get(a_tests_db, 'row_idx');
num_rows = dbsize(a_tests_db, 1);
num_cols = dbsize(a_tests_db, 2);
stats_props = get(a_tests_db, 'props');
if isfield(stats_props, 'axis_limits')
axis_limits = stats_props.axis_limits;
else
axis_limits = [];
end
if ~isfield(props, 'quiet') && ~isfield(get(a_tests_db, 'props'), 'quiet')
title_str = properTeXLabel([ get(a_tests_db, 'id') title_str ]);
end
props.dispErrorbars = 0;
props.dispNvals = 0;
a_plot = plot_bars(data, zeros(size(data)), zeros(size(data)), ones(size(data)), ...
cell(1, length(col_names)), col_names, title_str, axis_limits, ...
mergeStructs(props, stats_props));