|
From: Benjamin R. <ben...@ou...> - 2012-05-23 12:56:14
|
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 |