in makers.py I request to change def _set_custom_marker(self, path): verts = path.vertices rescale = max(np.max(np.abs(verts[:,0])), np.max(np.abs(verts[:,1]))) self._transform = Affine2D().scale(1.0 / rescale) self._path = path
to def _set_custom_marker(self, path): verts = path.vertices rescale = np.max(np.sqrt(np.square(verts[:,0]) + np.square(verts[:,1]))) self._transform = Affine2D().scale(1.0 / rescale) self._path = path such that the symbol *radius* is normalized to 1.0 This way my previous example give better results if the symbol is rotated: import matplotlib.path as path from matplotlib.transforms import Affine2D # define codes P = path.Path Pm = P.MOVETO Pl = P.LINETO Pc = P.CLOSEPOLY c = [Pm] + [Pl]*3 + [Pc] cx=c*2 # define basic path r=np.array(((-1.,-1),(1.,-1),(1.,1.),(-1,1.),(-1,-1))) # we add second closed path of half size but reverse parity rh=0.5*r[::-1] rx = np.vstack((r,rh)) p = path.Path(rx,codes=cx) x = np.linspace(0,1,10)**2 plot(x,c='r',marker=p,ms=10) pr = p.transformed(Affine2D().rotate_deg(45.)) plot(x,c='r',marker=pr,ms=10) show() I think this is how it is "meant" to be, but maybe you have to add a parameter to allow people recover the current behavior in that case. -Alexander ==== I just like round cows better than square cows. ------------------------------------------------------------------------------ Learn Windows Azure Live! Tuesday, Dec 13, 2011 Microsoft is holding a special Learn Windows Azure training event for developers. It will provide a great way to learn Windows Azure and what it provides. You can attend the event by watching it streamed LIVE online. Learn more at http://p.sf.net/sfu/ms-windowsazure _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel