Hi, The clip_on and clip_box arguments (and maybe clip_path also) in plot() command seem to have no effect. For example, In [29]: p, =plot([1,2,3], clip_on=False) In [30]: p.get_clip_on() Out[30]: True It seems that the line object is created with the given arguments but gets overwritten later when it is added to the axes (Axes.add_line), def add_line(self, line): ''' Add a :class:`~matplotlib.lines.Line2D` to the list of plot lines ''' self._set_artist_props(line) line.set_clip_path(self.patch) "line.set_clip_path(self.patch)" update clip_path, clip_box, and clip_on. So, isn't it better to do something explicitly when these arguments are ignored? Maybe to print out some warnings or even raise an exception, or do not call set_clip_path when clip_* argument is given, or etc.? A slightly related behavior I found unexpected is that set_clip_path() and set_clip_rect() method also update clip_on. Regards, -JJ
I think this is a bug created by the conversion from 0.91 to 0.98. I'll look into this and let you know when it has been resolved. Mike Jae-Joon Lee wrote: > Hi, > > The clip_on and clip_box arguments (and maybe clip_path also) in > plot() command seem to have no effect. For example, > > In [29]: p, =plot([1,2,3], clip_on=False) > > In [30]: p.get_clip_on() > Out[30]: True > > > It seems that the line object is created with the given arguments but > gets overwritten later when it is added to the axes (Axes.add_line), > > def add_line(self, line): > ''' > Add a :class:`~matplotlib.lines.Line2D` to the list of plot > lines > ''' > self._set_artist_props(line) > line.set_clip_path(self.patch) > > "line.set_clip_path(self.patch)" update clip_path, clip_box, and clip_on. > > So, isn't it better to do something explicitly when these arguments > are ignored? Maybe to print out some warnings or even raise an > exception, or do not call set_clip_path when clip_* argument is given, > or etc.? > > A slightly related behavior I found unexpected is that set_clip_path() > and set_clip_rect() method also update clip_on. > > Regards, > > -JJ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >
This should now be fixed in SVN r6052. Cheers, Mike Jae-Joon Lee wrote: > Hi, > > The clip_on and clip_box arguments (and maybe clip_path also) in > plot() command seem to have no effect. For example, > > In [29]: p, =plot([1,2,3], clip_on=False) > > In [30]: p.get_clip_on() > Out[30]: True > > > It seems that the line object is created with the given arguments but > gets overwritten later when it is added to the axes (Axes.add_line), > > def add_line(self, line): > ''' > Add a :class:`~matplotlib.lines.Line2D` to the list of plot > lines > ''' > self._set_artist_props(line) > line.set_clip_path(self.patch) > > "line.set_clip_path(self.patch)" update clip_path, clip_box, and clip_on. > > So, isn't it better to do something explicitly when these arguments > are ignored? Maybe to print out some warnings or even raise an > exception, or do not call set_clip_path when clip_* argument is given, > or etc.? > > A slightly related behavior I found unexpected is that set_clip_path() > and set_clip_rect() method also update clip_on. > > Regards, > > -JJ > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >
Thanks! It works as I expected. -JJ On Thu, Aug 28, 2008 at 8:43 AM, Michael Droettboom <md...@st...> wrote: > This should now be fixed in SVN r6052. > > Cheers, > Mike > > Jae-Joon Lee wrote: >> >> Hi, >> >> The clip_on and clip_box arguments (and maybe clip_path also) in >> plot() command seem to have no effect. For example, >> >> In [29]: p, =plot([1,2,3], clip_on=False) >> >> In [30]: p.get_clip_on() >> Out[30]: True >> >> >> It seems that the line object is created with the given arguments but >> gets overwritten later when it is added to the axes (Axes.add_line), >> >> def add_line(self, line): >> ''' >> Add a :class:`~matplotlib.lines.Line2D` to the list of plot >> lines >> ''' >> self._set_artist_props(line) >> line.set_clip_path(self.patch) >> >> "line.set_clip_path(self.patch)" update clip_path, clip_box, and clip_on. >> >> So, isn't it better to do something explicitly when these arguments >> are ignored? Maybe to print out some warnings or even raise an >> exception, or do not call set_clip_path when clip_* argument is given, >> or etc.? >> >> A slightly related behavior I found unexpected is that set_clip_path() >> and set_clip_rect() method also update clip_on. >> >> Regards, >> >> -JJ >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> > >