creating shaded areas

G'day all!

I'm back to using matplotlib after a few months away. I'm very impressed with the recent progress!

I often plot the instantaneous variance of repeated recordings made under the same conditions using a shaded area to surround the mean. I'm trying to find a way to do this with matplotlib. Included below is a "filly" (fill y) function I wrote to attempt to do this. It doesn't quite work yet, and I'd like some help. (BTW, I don't know of how this would be done in Matlab, so if there's a more compatible way, I'd be happy to change the approach.)

1) How do I make the data fill the axes automatically, such as the "plot" function?

2) Is it a bug that the polygon is not filled, or am I missing something?

I've only tried this in the PS backend -- I'm having troubles with the others at the moment. Also, this is using the version of matplotlib I checked out with CVS. This version fails to build the agg backend with:

running build_py
package init file 'ttfquery/__init__.py' not found (or not a regular file)
package init file 'FontTools/__init__.py' not found (or not a regular file)
package init file 'FontTools/fontTools/__init__.py' not found (or not a regular file)
package init file 'FontTools/fontTools/encodings/__init__.py' not found (or not a regular file)
error: package directory 'FontTools/fontTools/misc' does not exist

Cheers!
Andrew

-=-=-=-=-=-=-= filly.py -=-=-=-=-=-=-=-=
from matplotlib.matlab import *
from matplotlib.patches import Rectangle, Polygon

def filly(x,y1,y2,**kwargs):
     ax = gca()
     xy = []
     for xi, yi in zip(x,y1):
         xy.append( (xi,yi) )
     for xi, yi in zip(x[::-1],y2[::-1]):
         xy.append( (xi,yi) )
     xy.append( xy[0] )

     polygon = Polygon(
         ax.dpi, ax.bbox,
         xy,
         transx = ax.xaxis.transData, # what does this do?
         transy = ax.yaxis.transData, # and this??
         **kwargs)

     ax.add_patch(polygon)
     return polygon

figure(1)
t = arange(0.0, 1.0, 0.01)
s_mean = 0.5*sin(2*2*pi*t)
s_lo = s_mean-0.1
s_hi = s_mean+0.1
#plot(t,s_mean,'k')
filly(t,s_lo,s_hi,fill=1,facecolor='g')
gca().xaxis.autoscale_view() # why doesn't this help?
gca().yaxis.autoscale_view()
savefig('filly')
#show()

PGP.sig (155 Bytes)