This function will create a grouped bar graph with error bars without using the standard plotting functions BAR and ERRORBAR. It uses PATCH to create the bars and LINE to construct the error bars.
USAGE: h = barpatch(data, varargin)
__________________________________________________________________________
OUTPUT
h: handles to all graphics objects
__________________________________________________________________________
INPUTS
data: data matrix to plot; rows are cases, columns are variables
varargin: optional arguments entered as "name,value" pairs (to see default values, run barpatch without arguments). partial matches OK:
figh - handle for figure to plot in
groupidx - rows index columns of "data" to plot as a group
groupname - labels for different groups of bars
grouptick - flag to place tickmark between groups on x-axis
barname - labels for different bars within groups (in legend)
barcmap - colormap for distinguishing bars within a group
barwidth - width of bars (>1 produces overlapping bars)
errlinewidth- width of error bar lines
t - figure title
xl - x-axis label
yl - y-axis label
fontsize - base font size
fontname - name of font to use
ytickformat - display formatting for yticklabels (e.g., '%.2f')
yticklength - # of yticks (if empty, determined automatically)
__________________________________________________________________________
USAGE EXAMPLE
data = randn(10, 8);
groupidx = [1 2; 3 4; 5 6; 7 8];
groupn = {'Group A' 'Group B' 'Group C' 'Group D'};
xl = 'X-Axis Label';
yl = 'Y-Axis Label';
t = 'The Figure Title';
h = barpatch(data, 'groupidx', groupidx, 'groupname', groupn, 'xl', xl, 'yl', yl, 't', t);
Bob Spunt (2021). BARPATCH | Highly customizable bar graph w/error bars (https://github.com/spunt/barpatch), GitHub. Retrieved .
Inspired by: SETARGS | Parse user-specified optional arguments (varargin) with default values
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Thanks for heads up - will address in next update.
Seems like a nice function, but needs work... please indicate dependencies on nansem, fix usage example so that it does not create the following error:
Error in barpatch (line 136)
map = quantile(colormap(barcmap),
min(mapminmax):(range(mapminmax)+.01)/nbar:max(mapminmax));