I think this is just a vanilla bug that set_clip_on is being ignored for 
collections.  That patch is rather straightforward.

Other developers: do you agree this should be fixed, or is there a good 
reason for current behavior that I'm missing?

Cheers,
Mike

Index: lib/matplotlib/collections.py
===================================================================
--- lib/matplotlib/collections.py       (revision 7486)
+++ lib/matplotlib/collections.py       (working copy)
@@ -207,8 +207,7 @@
         transform, transOffset, offsets, paths = self._prepare_points()

         gc = renderer.new_gc()
-        gc.set_clip_rectangle(self.get_clip_box())
-        gc.set_clip_path(self.get_clip_path())
+        self._set_gc_clip(gc)

         renderer.draw_path_collection(
             gc, transform.frozen(), paths, self.get_transforms(),
@@ -1211,8 +1210,7 @@
             transOffset = transOffset.get_affine()

         gc = renderer.new_gc()
-        gc.set_clip_rectangle(self.get_clip_box())
-        gc.set_clip_path(self.get_clip_path())
+        self._set_gc_clip(gc)

         if self._shading == 'gouraud':
             triangles, colors = self.convert_mesh_to_triangles(


jason-s...@creativetrax.com wrote:
> On this thread:
>
> http://www.mail-archive.com/matplotlib-devel@lists.sourceforge.net/msg05383.html
>
> clip_on was a suggested way of getting around the clipping that happens 
> at the edge of a frame.  In the Sage project, we are always setting the 
> limits on the axes via set_xlim and set_ylim.  Is there any way to get 
> the lines and circles that pass across the edge of the usual clip 
> boundary to still be drawn, even if we have set the xlim and ylim of the 
> axis?
>
> Basically (using an example from the gallery), is there a way to get the 
> scatter plot circles below not clipped, while still having the y-axis 
> only go from -2 to 2?  If not, is there a way to easily calculate the 
> protrusion of the various objects, like the circles below, so we know 
> how much to adjust the axes to just include the circles?
>
> import matplotlib.pyplot as plt
> import numpy as np
> fig = plt.figure()
> x = np.linspace(0r,2*np.pi,100r)
> y = 2*np.sin(x)
> ax = fig.add_subplot(1,1,1)
> q=ax.scatter(x,y)
> ax.set_ylim([-2,2])
> q.set_clip_on(False)
> ax.set_clip_on(False)
> ax.spines['left'].set_position(('outward',10))
> ax.spines['bottom'].set_position(('outward',10))
> ax.spines['top'].set_color('none')
> ax.spines['right'].set_color('none')
> ax.xaxis.set_ticks_position('bottom')
> ax.yaxis.set_ticks_position('left')
> fig.savefig('test.png')
>
> Thanks,
>
> Jason
>
>
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
>   

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to