Hello,
I'm still interested in having a polygon symbol in the legend for a
scatter plot. I've made some changes to the suggestion of Manuel Metz to
make the legend symbol look better (the code-fragment from legend.py is
below). But when resizing the window, the symbol gets stretched and
placed in a bad location; it appears that the symbol is stretched and
scaled in the same manner as the legend box as a whole, while I think it
would look better if the symbol maintained the same size and aspect
ratio, but merely moved to the appropriate location within the resized
legend.
I would like to add this functionality, but I need some help to
understand the required transformations or scaling to make it look good.
Perhaps someone with a better understanding could provide some help?
Thanks,
Paul Novak
elif isinstance(handle, RegularPolyCollection):
if self.numpoints == 1:
xdata = np.array([left])
for path in handle.get_paths():
xy = path.vertices
p = Polygon(xy)
x = min(xdata)
y = y-0.5*HEIGHT
# 0.35 * HEIGHT makes the legend symbol an appropriate size.
# patch_aspect scales the legend symbol to the appropriate aspect ratio.
patch_aspect = (max(xy[:,0]) - min(xy[:,0])) /
(max(xy[:,1]) - min(xy[:,1]))
bbox = Bbox.from_bounds(x, y, 0.35 * HEIGHT, 0.35 *
HEIGHT * patch_aspect)
p.set_facecolor(handle._facecolors[0])
if handle._edgecolors != 'None':
p.set_edgecolor(handle._edgecolors[0])
self._set_artist_props(p)
# HERE IS THE ADDITIONAL TRANSFORM FOR THE POLY
p.set_transform( BboxTransformTo(bbox) +
p.get_transform() )
p.set_clip_box(None)
p.set_clip_path(None)
ret.append(p)
-
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
___
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel