如何在R中以图形方式显示简单的树 [英] How to display a simple tree in R graphically
本文介绍了如何在R中以图形方式显示简单的树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有如下数据:
in out
1 3
2 3
这表示以下树结构:
1 2
/
3
每棵树都将由这样的子树组成,其中有两个源(in
)和一个目标(out
)。稍微复杂一点的树是:
in out
1 3
2 3
3 5
4 5
表示此树的名称:
1 2
/
3 4
/
5
因此,每个树的顶部将恰好包含2个节点,而底部将恰好包含1个节点,而介于两者之间的每个级别将恰好包含2个节点。这可能有很多层面。最后一个例子:
in out
1 3
2 3
3 5
4 5
5 7
6 7
表示此树的名称:
1 2 level 1
/
3 4 level 2
/
5 6 level 3
/
7 level 4
我怎样才能把这些树画得很漂亮?我无法使用ggtree
,因为我必须使用的R版本不支持它。我已经查看了igraph
和graph.tree
,但到目前为止还不知道如何操作。
如果这很重要,我会很高兴把它画得颠倒,而不是像上面那样--或者从左到右。
推荐答案
输入是边缘列表,因此我们可以将其转换为图形对象,然后使用指示的布局对其进行绘制。LAY是一个给出顶点坐标的两列矩阵,涉及LAY的矩阵乘法求反其第二列,从而使其反转。
library(igraph)
DF <- data.frame(in. = 1:6, out. = c(3, 3, 5, 5, 7, 7)) # input
g <- graph_from_edgelist(as.matrix(DF[2:1]))
lay <- layout_as_tree(g)
plot(as.undirected(g), layout = lay %*% diag(c(1, -1)))
这篇关于如何在R中以图形方式显示简单的树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文