Andi Clemens wrote: > Hi, > > everytime I try to plot a bar with matplotlib I get the following error > message: > Traceback (most recent call last): > File "bar_stacked.py", line 13, in ? > p1 = bar(ind, menMeans, width, color='r', yerr=womenStd) > File "/usr/lib/python2.4/site-packages/matplotlib/pylab.py", line > 1641, in bar > ret = gca().bar(*args, **kwargs) > File "/usr/lib/python2.4/site-packages/matplotlib/axes.py", line > 2485, in bar > xerr = asarray([xerr]*nbars, Float) > File "/usr/lib/python2.4/site-packages/Numeric/Numeric.py", line 134, > in asarray > return multiarray.array(a, typecode, copy=0, savespace=savespace) > TypeError: a float is required > > > So I guess it has something to do with Numeric.py, but I can't figure > out what the problem is. I tried to google but found nothing... > > Anyone has the same problem? I can plot all kinds of graphics with > matplotlib, but the only type I'm interested in (bars) will not work. > > I tried the examples coming with matplotlib, but even those don't work. > > Here is the example code which produces the above error: > #!/usr/bin/env python > # a stacked bar plot with errorbars > from pylab import * > > N = 5 > menMeans = (20, 35, 30, 35, 27) > womenMeans = (25, 32, 34, 20, 25) > menStd = (2, 3, 4, 1, 2) > womenStd = (3, 5, 2, 3, 3) > ind = arange(N) # the x locations for the groups > width = 0.35 # the width of the bars: can also be len(x) sequence > > p1 = bar(ind, menMeans, width, color='r', yerr=womenStd)
Call me crazy -- I know SFA about matplotlib -- but I'd expect anything scientific to barf if given tuples of integers to play with, and following the docs links matplotlib > pylab > bar we find: """ bar(*args, **kwargs) BAR(left, height, width=0.8, bottom=0, color='b', yerr=None, xerr=None, ecolor='k', capsize=3) Make a bar plot with rectangles at left, left+width, 0, height left and height are Numeric arrays. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ """ Which of us is missing what? Cheers, John -- http://mail.python.org/mailman/listinfo/python-list