File Exchange

image thumbnail

BARPATCH | Highly customizable bar graph w/error bars

version (7.72 KB) by Bob Spunt
Create and customize a bar graph with error bars. Supports grouped data.


Updated 31 Oct 2016

From GitHub

View Version History

View license on GitHub

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)


h: handles to all graphics objects


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)


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);

Cite As

Bob Spunt (2021). BARPATCH | Highly customizable bar graph w/error bars (, GitHub. Retrieved .

Comments and Ratings (2)

Bob Spunt

Thanks for heads up - will address in next update.

Thomas Fikes

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),

MATLAB Release Compatibility
Created with R2015b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!