在matlab中确定/保存文本的位置

时间:2012-07-13 22:53:31

标签: matlab plot textlabel

我使用scatter绘制了几个点,然后使用text标记它们。这些标签的位置与点的位置+一些偏移相同。其中一些文本标签相互重叠,因此我以交互方式移动它们(使用鼠标)。我可以使用属性编辑器单独检查每个文本的新位置。然而,这非常耗时。有没有更好的方法来获取所有这些文本标签的坐标?

2 个答案:

答案 0 :(得分:1)

您可以使用findobj获取当前轴的子项(或其他句柄...您的选择)的文本对象的句柄:

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

然后你可以得到这些文本对象的位置:

positions = get(text_handles,'position');

您可能需要做更多的工作来将每个文本对象与其数据点相关联 - 我建议利用属性系统,可能通过UserData字段,尽管有很多选项。

答案 1 :(得分:0)

如果您想稍后轻松完成,请在您的图中执行此操作,例如:

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

这将使" MyText"位置2.9和7.5。

然后改变位置使用:

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

这会将位置更改为2.5和7。

稍后如果您需要再次查看文本的位置,请使用:

get(h);

希望这有帮助。