On Thu, Feb 11, 2010 at 9:43 AM, Geoff Bache <geoff.ba...@jeppesen.com> wrote: > > Hi all, > > I'm trying to generate graphs from my test results, with regions > coloured with succeeded and failing tests. It nearly works, but I have > the following problem. I am providing the data with fill_between, which > returns PolyCollection objects which cannot be provided to a legend. So > I use the "proxy artist" trick, as described here > > http://matplotlib.sourceforge.net/users/legend_guide.html#plotting-guide-legend >
What about creating a proxy artist which is a simple polygon that has the same outline as your fill_between polygon? In [539]: t = np.arange(0, 1, 0.05) In [540]: y = np.sin(2*np.pi*t) In [541]: verts = zip(t, y) In [542]: proxy = mpatches.Polygon(verts, facecolor='yellow') The only reason fill_between uses a PolyCollection is to support the "where" keyword argument for non-contiguous fill regions, which you do not appear to be using. Thus you could simply create the polygon yourself with a little calculation (see mlab.poly_between for a helper function) and then just add that patch to the axes rather than using fill_between:: t = np.arange(0, 1, 0.05) ymin = np.sin(2*np.pi*t)-5 ymax = np.sin(2*np.pi*t)+5 xs, ys = mlab.poly_between(t, ymin, ymax) verts = zip(xs, ys) poly = mpatches.Polygon (verts, facecolor='red', label='my poly') ax = subplot(111) ax.add_patch(poly) ax.legend(loc='best') ax.axis([0, 1, -6, 6]) plt.draw() ------------------------------------------------------------------------------ SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW http://p.sf.net/sfu/solaris-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users