|
From: Meesters, Aesku.K. I. <mee...@ae...> - 2012-05-23 14:15:08
|
Thanks, Ben. This is indeed what I was looking for and gives the desired behavior. Thanks a lot! Chris On Wed, 2012-05-23 at 08:55 -0400, Benjamin Root wrote: > > On Wed, May 23, 2012 at 4:03 AM, Meesters, Aesku.Kipp Institute > <mee...@ae...> wrote: > Hi, > > I'm following the example in the gallery to do a barchart plot > (see > http://matplotlib.sourceforge.net/examples/api/barchart_demo.html ). > > In contrast to the example I would like to see the error bars > only above > the bars, so I tried > > rects2 = ax.bar(ind+width, womenMeans, width, color='y', > yerr=stds, error_kw = {'barsabove': True, > 'ecolor' : 'k'} > > While the 'ecolor' argument gets accepted, 'barsabove' > apparently has no > effect (error bars still point up and downwards) - yet, no > warning / > error is triggered. Where is my mistake? Or is this a bug > (still using > version 1.0.1) with a known work-around? > > TIA > Chris > > > Chris, > > I don't think "barsabove" does what you want. By "above", it means > that the errorbar is plotted in a layer on top of the plotting symbol > rather than in the layer under it. Both ends will be plotted. > > To get what you want, you might want to try (Note: untested): > > rects2 = ax.bar(ind+width, womenMeans, width, color='y', > yerr=np.vstack([[0]*len(stds), stds]), error_kw = > {'ecolor' : 'k'}) > > When yerr is a 2xN numpy array, errorbars are plotted at y-yerr[0, :] > and y+yerr[1,:]. So, np.vstack creates a 2xN array where the first row > is all zeros and the second row is the stds values. > > I hope that works for you! > Ben Root > > |