Vito De Tullio wrote:
> Hi!
> I'm a newbie of matplotlib, and I'm trying to plot a set of data... but I
> got blocked...
>
> $ cat matplotliberr.py
> #!/usr/bin/env python
>
> # dummy data to plot
> from datetime import date, timedelta
> from random import randint
> x = [ date.today() + timedelta(i) for i in range(10) ]
> y = [ randint(0, i) for i in range(10) ]
>
> from matplotlib import pyplot
> pyplot.fill(x, y) # no problem using pyplot.plot(x, y)
Try fill_between instead of fill. Fill does not support units
(arguments that are not simple number sequences), but fill_between does;
in addition, I think fill_between is what you really want here.
Eric
> pyplot.show()
> $ ./matplotliberr.py
> /usr/lib/python2.6/site-packages/pytz/tzinfo.py:5: DeprecationWarning: the
> sets module is deprecated
> from sets import Set
> Traceback (most recent call last):
> File "./matplotliberr.py", line 10, in <module>
> pyplot.fill(x, y)
> File "/usr/lib/python2.6/site-packages/matplotlib/pyplot.py", line 1876,
> in fill
> ret = gca().fill(*args, **kwargs)
> File "/usr/lib/python2.6/site-packages/matplotlib/axes.py", line 5558, in
> fill
> for poly in self._get_patches_for_fill(*args, **kwargs):
> File "/usr/lib/python2.6/site-packages/matplotlib/axes.py", line 394, in
> _grab_next_args
> for seg in self._plot_2_args(remaining, **kwargs):
> File "/usr/lib/python2.6/site-packages/matplotlib/axes.py", line 331, in
> _plot_2_args
> func(x, y)
> File "/usr/lib/python2.6/site-packages/matplotlib/axes.py", line 314, in
> makefill
> (x[:,np.newaxis],y[:,np.newaxis])),
> TypeError: list indices must be integers, not tuple
> $ rpm -q python-matplotlib
> python-matplotlib-0.98.5.2-1.3
>
|