clip_on & clip_box in plot()

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
Matplotlib-devel@lists.sourceforge.net
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
Matplotlib-devel@lists.sourceforge.net
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 <mdroe@...31...> 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
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel