【问题标题】:Add node numbers/get node locations from MATLAB's treeplot从 MATLAB 的树形图中添加节点号/获取节点位置
【发布时间】:2012-02-22 00:53:00
【问题描述】:

我一直在使用 MATLAB 的 treeplot 函数,但它似乎提供的绘图功能和/或可扩展性极少。

我正在画这样一棵树:

tree = [0  1  2  2  2  2  2  1  8  8  1  11  11  1  14];
treeplot(tree)

给予:

我想做的是向特定节点添加注释或标签。一个好的开始是将节点号添加到每个节点,如帮助文件中的示例:

正如他们所说:

这些索引仅用于说明示例;它们不是树形图输出的一部分。

有没有办法获取绘制节点的位置,或者至少绘制节点编号?我找不到任何具有更高级树图的 FEX 提交。

最后,我想在节点上绘制小图片(使用来自answers to a previous question of mine 的方法)。

【问题讨论】:

  • 这些图片在我的网站上是否普遍丢失或过滤掉了。
  • 我不知道...我已经把它们都显示在这里了。我制作并上传的第一个,第二个最初来自 MathWorks 网站(但我相信现在都托管在 i.imgur)。

标签: matlab tree plot


【解决方案1】:

这应该可以帮助您制作带标签的树: (您提供“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');

使用您的示例输入,这给出了

【讨论】:

    【解决方案2】:

    要获取节点的位置,请使用treelayout

    [x,y]=treelayout(tree);
    

    向量 x 和 y 为您提供位置,然后您可以使用它们在节点处绘制图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 1970-01-01
      相关资源
      最近更新 更多