matplotlib: TypeError: a float is required

Tim Heaney theaney at gmail.com
Sun Sep 17 10:05:05 EDT 2006


Andi Clemens <andi.clemens at gmx.net> writes:
>
> 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.

It looks like it doesn't like not having xerr set. The documentation
says 

  xerr and yerr, if not None, will be used to generate errorbars on
  the bar chart

implying that if they are None (the default), then no errorbars will
be generated. But that doesn't seem to be the case. When I add an xerr
to both p1 and p2

  p1 = bar(ind, menMeans,   width, color='r', yerr=womenStd,
           xerr=zeros(N))
  p2 = bar(ind, womenMeans, width, color='y',
           bottom=menMeans, yerr=menStd, xerr=zeros(N))

I get the following bar chart

  http://img176.imageshack.us/my.php?image=imagenx6.png

with no errors.

Tim



More information about the Python-list mailing list