On Wed, 2011-02-09 at 12:07 -0800,
Michael D Godfrey wrote:
> On 02/09/2011 10:24 AM, bpabbott wrote:
> > On Feb 09, 2011, at 01:14 PM, Konstantinos
Poulios
> > <
address@hidden>
wrote:
> >
> >
> > > On Mon, Feb 7, 2011 at 12:37 AM, Ben
Abbott <
address@hidden>
> > > wrote:
> > > > On Feb 6, 2011, at 6:35 PM, Michael
D Godfrey wrote:
> > > >
> > > >> On 02/06/2011 03:21 PM,
Konstantinos Poulios wrote:
> > > >>> On Mon, Feb 7, 2011 at 12:16
AM, Michael D Godfrey
> > > >>>
> > > >>> <
address@hidden>
> > > >>> wrote:
> > > >>>
> > > >>>> >
> > > >>>> On 02/06/2011 02:49 PM,
logari81 wrote:
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>>> On Sun, 2011-02-06 at
17:21 -0500, Ben Abbott wrote:
> > > >>>>
> > > >>>> >
> > > >>>>> >>
> > > >>>>> On Feb 6, 2011, at
4:02 PM, Michael D Godfrey wrote:
> > > >>>>>
> > > >>>>> >>
> > > >>>> >
> > > >>>>>> >> >
> > > >>>>>> A short while
ago I created a bug report
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> (32311) which
pointed out the fact that
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> text(x,y,"xxx')
only works for x,y within the
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> axes. Matlab and
legend allow writing the
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> string anywhere
in the window.
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> >> >
> > > >>>>>> Since you just
fixed legend, any chance
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> you could look
at this? Quite a lot of Matlab
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> code write
annotations on plots using text
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> and positions
this outside the axes.
> > > >>>>>>
> > > >>>>>> >> >
> > > >>>>>> >> >
> > > >>>>>> Michael
> > > >>>>>>
> > > >>>> >
> > > >>>>> >>
> > > >>>>> >>
> > > >>>>> I notice this work
for the gnuplot backend, but not for the
> > > FLTK backend.
> > > >>>>>
> > > >>>>> >>
> > > >>>>> >>
> > > >>>>> It looks to me like
something is checking the x/ydata values
> > > and not
> > > >>>>>
> > > >>>>> >>
> > > >>>>> rendering the result
if it is outsize the axis limits.
> > > >>>>>
> > > >>>>> >>
> > > >>>>> >>
> > > >>>>> I'd expect this to
be done in gl_render.cc, but don't see
> > > where it is.
> > > >>>>>
> > > >>>>> >>
> > > >>>>> I've cc'd Kostas, in
case he knows where this is done.
> > > >>>>>
> > > >>>>> >>
> > > >>>>> >>
> > > >>>>> Ben
> > > >>>>>
> > > >>>>> >>
> > > >>>> >
> > > >>>> >
> > > >>>> printing of text objects
is done in draw_axes_children in
> > > gl-render.cc
> > > >>>>
> > > >>>> >
> > > >>>> after the clipping
property is checked.
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>>> So it works if you just
set clipping off, like:
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>>> set(ht,'clipping','off')
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>>> If it would make sense
we could change the default clipping
> > > to on
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>>> Kostas
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>>> I just tried this. It
does not work.
> > > >>>>
> > > >>>> >
> > > >>>> octave:1>
ht=plot(1:200)
> > > >>>>
> > > >>>> >
> > > >>>> ht = -19.142
> > > >>>>
> > > >>>> >
> > > >>>> octave:2>
set(ht,'clipping','off');
> > > >>>>
> > > >>>> >
> > > >>>> octave:3>
text(200,-2,'this is it')
> > > >>>>
> > > >>>> >
> > > >>>> octave:4>
set(ht,'clipping','on');
> > > >>>>
> > > >>>> >
> > > >>>> octave:5>
text(200,-2,'this is it')
> > > >>>>
> > > >>>> >
> > > >>>> octave:6>
text(200,2,'this is it')
> > > >>>>
> > > >>>> >
> > > >>>> octave:7>
text(200,20,'this is it')
> > > >>>>
> > > >>>> >
> > > >>>> octave:8>
text(201,20,'this is it')
> > > >>>>
> > > >>>> >
> > > >>>> octave:9>
> > > >>>>
> > > >>>> >
> > > >>>>
=========================
> > > >>>>
> > > >>>> >
> > > >>>> None of the text
commands with x,y outside axes prints.
> > > >>>>
> > > >>>> >
> > > >>>> >
> > > >>> the clipping property refers
to the text object, so just try:
> > > >>>
> > > >>> ht=text(200,-2,'this is
it');
> > > >>> set(ht,'clipping','on');
> > > >>>
> > > >>> Kostas
> > > >>>
> > > >>>
> > > >> Right. Now it "works." Except,
where you say above 'on'
> > > >> you really need 'off'. But, it
is not like Matlab and it is a
> > > bit of
> > > >> work to obtain the text handle
and set 'off' for each text use.
> > > >> So, how about default 'off.'?
Someday it might be useful
> > > >> to have a global on/off, but
maybe after the release?
> > > >>
> > > >> Michael
> > > >
> > > > Matlab R2010b has the default set to
"off".
> > > >
> > > > I recommend we do the same.
> > > >
> > > > Ben
> > > >
> > > >
> > >
> > > I have taken a look at this, but I
couldn't find a very easy way
> > > to
> > > change the default clipping value in the
backend. This is because
> > > the
> > > clipping property is shared among many
different classes and the
> > > text
> > > class doesn't have an init function which
would let us override
> > > any
> > > default values of the base class.
> > >
> > > Here we have to take a decision, should
we add a init function for
> > > the
> > > text class or should we set the default
value for clipping to
> > > "off" in
> > > the frontend (e.g. text.m)? Maybe John
could give us some advice
> > > on
> > > that.
> > >
> > > Kostas
> > >
> >
> > It looks to me like the "clipping" property
needs to be removed from
> > the BASE_PROPERTIES list and added to each
object.
> >
> >
> > This would be done in graphics.h.in. I haven't
tried this myself,
> > so ... ?
> >
> >
> > Ben
> >
> >
> You might take a look at bug 32311. There is a
patch attached to it
> which
> sets the default clipping 'off'. This comes close
to matching Matlab
> behavior.
> (It appears to match with gnuplot in any case, the
differences are for
> fltk.)
> The only known difference under fltk is that if
clipping is 'off' and
> you shrink
> the axes data that is then outside the axes is
still visible. I am
> not sure that
> this is a bad thing. It appears to me that clipping
is already a
> property of objects,
> like text (you have to turn it off with respect to
each ht = text() in
> order for
> it to be 'off' (or 'on') for that text string.
>
> In any case, a good first step would be to commit
the patch that
> changes the
> default clipping 'off'. It may be, in any case,
that making it more
> easily selectable
> will be useful. It might be good to allow resetting
the default.
>
> Michael
>
the patch that you have pointed to sets clipping to off
for all classes
based on base_properties. I don't think that we want
that.
I think setting default clipping to off would be nice
for text objects
but not for all objects derived from base_properties.
Kostas