Code covered by the BSD License  

Highlights from
barweb (BARgraph With Error Bars)

4.69355

4.7 | 64 ratings Rate this file 202 Downloads (last 30 days) File Size: 2.78 KB File ID: #10803
image thumbnail

barweb (BARgraph With Error Bars)

by

 

20 Apr 2006 (Updated )

Plots a fully customizable grouped bar graph with error bars

| Watch this File

File Information
Description

barweb.m calls the BAR and ERRORBAR MATLAB functions to produce bar graphs with error bars. The resultant graph is fully customizable, from group naming to legend inclusion to colormap setting. It assumes an m-by-n y-input matrix and plots m groups of n bars. The errorbar matrix must be setup the same way as the barvalues matrix (i.e. same dimensionality, matched values must have same indexes)

Syntax:
barweb(barvalues, errors, width, groupnames, bw_title, bw_xlabel, bw_ylabel, bw_colormap, gridstatus, bw_legend)

Acknowledgements

This file inspired Bar Two Yaxis, Barwebpairs (Pair Bars Within Groups And Between Groups), Create Healthy Looking Error Bars, and Grouped Bar Plots With Error Bars.

MATLAB release MATLAB 7.1.0 (R14SP3)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (81)
08 Oct 2014 Rainer

Oh no, doesnt work with 2014b anymore.

06 Dec 2013 Greg

@Jaroslav Hlinka. Fixed this bug. Changed the plot errors loop to this. Set 'error_sides' to 3.

% Plot erros
for i = 1:numbars
x = get(get(handles.bars(i),'children'), 'xdata');
x = mean(x([1 3],:));

if error_sides == 3
pValues = barvalues;
pValues(pValues<0)=NaN;
nValues = barvalues;
nValues(nValues>0)=NaN;
handles.posErrors(i) = errorbar(x, pValues(:,i), zeros(size(errors(:,i))), errors(:,i), 'k', 'linestyle', 'none', 'linewidth', 2);
handles.negErrors(i) = errorbar(x, nValues(:,i), errors(:,i), zeros(size(errors(:,i))), 'k', 'linestyle', 'none', 'linewidth', 2);
else
handles.errors(i) = errorbar(x, barvalues(:,i), errors(:,i), 'k', 'linestyle', 'none', 'linewidth', 2);
end
ymax = max([ymax; barvalues(:,i)+errors(:,i)]);
end

29 Nov 2013 Aaron Pancost  
28 Nov 2013 Li

It is working,thank you very much!

08 Nov 2013 Rakesh Chalasani  
25 Jul 2013 Shuvra

Awesome

18 Jul 2013 Michael

Wonderful function, very useful. Just a quick question, my error value of choice at the moment is SEM; when I input my SEM matrix (1 standard error of the mean) as my "errors" values, does this function plot 1 SEM above and below the mean (showing 2 SEM in total), or does it split 1 SEM in half and shows the upper and lower half, above and below the mean respectively (showing 1 SEM in total) ?

Thanks a bunch for the feedback!
M

05 Jul 2013 Shatrughan

Hey Plamen..what is your data..I may help you as have been using this great script since long for plotting..let me know about your data..

05 Jul 2013 Plamen

How do you group up different data on one plot? In the example image there are 3 groups with 'type1 type2 type3 type4' but I cannot figure out how.

10 Apr 2013 Nolan C

great!

31 Jan 2013 Diane

This is a really great program. One additional feature that would be great is making it so you can make a break in the y-axis (e.g. if you have a break from 100 to 1000) when plotting data of different magnitudes.

13 Dec 2012 john

Works well.Great

10 Dec 2012 George McFadden

I have the same problem as the previous two comments here. The groupnames input only displays 1 string on the x axis, and I have a 6x1 cell variable = groupnames. Appears to be a common problem with other users. Please Advise how to fix!

Thanks.
G

04 Jan 2012 Parul Srivastava

how to plot with secondary axis means values of two bars on two different y axis

03 Jan 2012 David

I seem to have run into a bug. I want to have a single bar for several groups and I set the groupnames variable to the names I want. But I end up with one group and multiple bars. I've tried inputing an mx1 vector and 1xm vector to see if that's the problem but both times I get the same results. Commenting out lines 120 and 121 fixed it. Any ideas?

24 Nov 2011 Hong

good job

26 Oct 2011 Mariana  
02 Sep 2011 Yi YIN  
16 Aug 2011 amit Singh

good

28 Jul 2011 dani din  
18 Jul 2011 Arturo Moncada-Torres

Nice file. I recommend you to look at this post (http://blogs.mathworks.com/loren/2009/05/05/nice-way-to-set-function-defaults/) regarding variable inputs for functions.

Keep up the good work ;-)

16 Jul 2011 musi

(The above statement is to put samples values associated with each bar in the x-axis)

16 Jul 2011 musi

Pretty great:

it is working

% groupnames
{'1000', '2000', '5000', '10000', '15000', '20000', '25730'},

14 Jul 2011 Pearl

Thank you!

11 Jul 2011 Arturo Moncada-Torres  
01 Jul 2011 Rachel

what are the options to set the gridstatus input to?

30 Mar 2011 Casey Ta

Thanks, this was very helpful!

30 Mar 2011 Casey Ta  
16 Jan 2011 Karen

It would be nice if we could set different upper and lower error values... Otherwise quite cool

08 Dec 2010 Ali Ali

Thanks a lot

11 Nov 2010 Juan Carlos

Thanks!

03 Nov 2010 Erin

to plot bars horizontal
view(90, -90)

or view(-90, 90)

15 Oct 2010 Patrick A.  
14 Oct 2010 C G

Great. Thanks!

30 Sep 2010 Jeff Chen

Works GREAT!

15 May 2010 Ross

This is really nice. If using values in only one group (monthly rain data, for example), is there any way to add labels to the x-axis?

14 May 2010 James

Thanks Bolu! This is what I was looking for.

05 Apr 2010 Pearl  
01 Apr 2010 Jesse Brown

Handy function. One problem: when I save a figure with one-sided bars to .png or .tif, two-sides bars show up.

29 Mar 2010 Debanjan Goswami

Really nice and easy. But I have got a problem. I can't plot the 'X-tick' like type1, type2... written in the example figure. I have the text for each bar in a separate cell array. How to incorporate?

Thanks

22 Feb 2010 Anke

really helpfull!

18 Feb 2010 Luis Felipe Giraldo

Nice!

15 Jan 2010 Dung Chu

Great. I just need view(90, -90) after all to have horizontally-aligned bar charts.

26 Nov 2009 Arthur  
07 Nov 2009 Roman Balabin  
01 Oct 2009 Jaroslav Hlinka

Thanks for the function! Useful, although I think I may have found an annoying bug: using 'error_sides = 1', when I save tiff file, it has the errorbar all the way down to x-axis (it is still ok when the initial figure is created). Using MATLAB R2007a on windowsXP. Any idea why/Any quick fix available?
PS. btw, the usage in the .m file might not be up to date - e.g. mentioning "barwebtype" parameter which is not amongst the function parameters.

22 Jul 2009 Greg Imamura

Great program- I modified mine to allow for lower and upper errors

10 Jul 2009 Matthew  
01 Jun 2009 Félix Chénier

Clean and simple, it does a very good job. Thank you

29 Apr 2009 Wenjia

Excellent! That is just what I need.

09 Dec 2008 Mastaneh  
16 Oct 2008 Kshitiz Gupta

Thanks. It is very useful.

14 Oct 2008 René Quilodran

Thanks Bolu !!!!! you did a great job!!!

18 Sep 2008 Nikolay Stoykov

Great job, Bolu! Thanks.

10 Sep 2008 Lan Huong Vu Thi

Thanks. It is useful for me !

08 Sep 2008 Brajendra Singh

Great!

08 Aug 2008 Jorge T

Great! saved me a lot of time!

05 Aug 2008 A VanderWyst  
02 Jul 2008 Ben Engel

This was a great help - thanks!

20 Jun 2008 alyssa smith

you're my hero. this just saved me a mountain of trouble!!

04 Jun 2008 Y Guo

Thanks! Good job! Matlab should consider incorporating this!

01 May 2008 Amanda Whitmire

Great - exactly what I needed. Thanks for sharing it.

15 Apr 2008 H Hung

great stuff.. any chance of updating it so that the errors can have an upper and lower bound like the matlab errorbar function?

10 Apr 2008 Kim Bostroem

Coolomat!
Why hasn't the great Matlab thought of this himself? It's SO useful!

03 Apr 2008 Juan Hincapie

Exactly what I needed!

03 Apr 2008 Andy C

Just what I always wanted.

14 Feb 2008 Dimka P

Very helpful! Thanks!

12 Feb 2008 John Elve

The script itself is good but it lacks the possibility of a variable number of input arguments!

07 Feb 2008 J X

This is very helpful, which helped me draw the graphs in a few secs.

05 Feb 2008 Diana Bedolla

For the plotting it works really good, but when I introduce the groupnames it repeats the same
first groupname in each x-tick. Any idea what could be the problem?? Thanks for the file!!

20 Dec 2007 Steve Fleming

One of the very few oversights in the graphics toolbox is not having an easy way of plotting error bars! This is great and saved me a lot of time.

17 Dec 2007 germana ba

thank you so much!

08 Jul 2007 Richard Lemon

This works very well. What a big help. Thanks!

01 Jun 2007 Will Hunting

Thanks a lot !

31 May 2007 James Blake

Works well with R2006a. Nice and easy to change the colours of the bars and such.

11 Apr 2007 Richard Cui

Neat job!

01 Mar 2007 Michael Frank

Nice! produces very pretty graphs, generally very easy to use.

31 Aug 2006 Scott G

Small problem with group labelling in R14.

Fix on line 124:
Add additional arguments to set(...)

set(gca, ..., 'XTick', 1:numgroups);

24 Apr 2006 Angela Chapman

Unfortunately for me, not compatible with Matlab 6.0.

23 Apr 2006 Jiro Doke

Pretty good, but it doesn't leave the user much control to make modifications. You should at least return the handles of the bar and errorbar objects, so that the user can modify their properties. Along the same line, you should also return the handle of the legend axes. I prefer leaving the legend (as well as title and labels) out for the user to do on their own, since it allows them to customize properties like position, fontsize, fontweight, etc.

23 Apr 2006 Shai Shen-Orr  
Updates
24 Apr 2006

Revised based upon M-Lint Code Report.

No functional revisions...code has just been spaced for better readability.

24 Apr 2006

Revised based upon M-Lint Code Report.

No functional revisions...code has just been spaced for better readability.

24 Apr 2006

Updated based upon the M-Lint code report. No functional changes were made. The code was just spaced out for easier reading and comprehension.

28 Sep 2009

1) Now able to plot 1 vs 2-sided barwebs
2) Now able to show legend along x-axis or on standard plot
3) Made code more robust by using bar children features rather than calculating x positions manually
4) other small fixes

01 Oct 2009

Changed the usage information

Contact us