从MATLAB的树形图中添加节点编号/获取节点位置

Bil*_*ham 4 tree matlab plot

我一直在使用MATLAB的treeplot函数,但它似乎提供了令人惊讶的小绘图功能和/或可扩展性.

我正在密谋这样一棵树:

tree = [0  1  2  2  2  2  2  1  8  8  1  11  11  1  14];
treeplot(tree)
Run Code Online (Sandbox Code Playgroud)

赠送: 在此输入图像描述

我想要做的是向特定节点添加注释或标签.一个好的启动器是将节点号添加到每个节点,如帮助文件中的示例所示:

在此输入图像描述

正如他们所述:

这些指数仅用于说明示例; 它们不是树形图输出的一部分.

有没有办法获得绘制节点的位置,或者至少绘制节点数?我找不到任何带有更高级树形图的FEX提交.

最后,我想在节点上绘制小图片(使用回答我之前问题的方法).

小智 8

这应该可以帮助你制作一个带标签的树:(你提供'treeVec'.)

treeplot(treeVec);
count = size(treeVec,2);
[x,y] = treelayout(treeVec);
x = x';
y = y';
name1 = cellstr(num2str((1:count)'));
text(x(:,1), y(:,1), name1, 'VerticalAlignment','bottom','HorizontalAlignment','right')
title({'Level Lines'},'FontSize',12,'FontName','Times New Roman');
Run Code Online (Sandbox Code Playgroud)

通过您的样本输入,这给出了 在此输入图像描述