|
From: | bpabbott |
Subject: | Re: bounds on position for text() |
Date: | Wed, 09 Feb 2011 21:08:25 +0000 (GMT) |
On 02/09/2011 12:19 PM, logari81 wrote:Who is we? This needs more review. It would be reasonable to allowOn Wed, 2011-02-09 at 12:07 -0800, Michael D Godfrey wrote:On 02/09/2011 10:24 AM, bpabbott wrote:
<address@hidden> wrote:On Feb 09, 2011, at 01:14 PM, Konstantinos Poulios<address@hidden> wrote:On Mon, Feb 7, 2011 at 12:37 AM, Ben AbbottOn Feb 6, 2011, at 6:35 PM, Michael D Godfrey wrote:On 02/06/2011 03:21 PM, Konstantinos Poulios wrote:
<address@hidden> wrote:On Mon, Feb 7, 2011 at 12:16 AM, Michael D Godfrey
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.
KostasI 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'); KostasRight. Now it "works." Except, where you say above 'on' you really need 'off'. But, it is not like Matlab and it is abit 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? MichaelMatlab R2010b has the default set to "off". I recommend we do the same. BenI 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. KostasIt 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 ... ? BenYou 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. Michaelthe 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.
users choices. And, the "defaults" should be configurable. Now, a
set(ht,...) is required after each ht=text() command And, this is not
explained in the Manual...
[Prev in Thread] | Current Thread | [Next in Thread] |