0

I plotted few points using scatter and then label them using text. The position of these labels are same as the position of the points + some offset. Some of these text label overlap with each other and hence I moved them interactively (using mouse). I can check the new position of each of these text individually using property editor. However this is very time-consuming. Is there a better way to get the coordinates of all these text-label?

imsc
  • 7,492
  • 7
  • 47
  • 69

2 Answers2

1

You can use findobj to get handles to text objects that are children of the current axes (or another handle... your choice):

text_handles = findobj('parent',gca,'type','text');

Then you can get the positions of these text objects:

positions = get(text_handles,'position');

You may need to do a bit more work to associate each text object with its data point - I suggest taking advantage of the property system, perhaps via the UserData field, for this, though there are many options.

tmpearce
  • 12,523
  • 4
  • 42
  • 60
0

If you want to do it easily later do this in your plots, for example:

h=text(2.9,7.5,'MyText');

This will put "MyText" at position 2.9, and 7.5.

Then to change the position use:

set(h,'Position',[2.5 7]);

This will change the position to 2.5 and 7.

Later if you need to see tthe position of text again use:

get(h);

Hope this helps.

TJ1
  • 7,578
  • 19
  • 76
  • 119