我有一个类似以下的数据集(它将具有任意长度,但是末尾有一个count列):

dd <- data.frame(
   "level1" = c("a", "a", "b"),
   "level2" = c("c", "d", "c"),
   "cnt" = c(1, 3, 5)
)


我想打印出这种结构的漂亮树,无需大量工作:)。已经尝试仅进行排序并查看边界条件以输出数据。

理想情况下,根据上面的数据,树结构如下所示:

level1     level2
a: 4  ---> c: 1
      ---> d: 3
b: 5  ---> c: 5


数据帧的最后一个向量在哪里总结了树的不同分支,但具有漂亮的图表以进行可视化。最后一个向量,因为我们可以有任意多个级别。没有人知道自己不需编写自己的树算法集的简单方法吗?

图的图像:

最佳答案

例如,使用igraph包,您几乎不需要做任何事情。我更正了您数据中的一些错字,并添加了新的优势以获取更漂亮的图形。我的图看起来像这样:



这是我的R代码:

 actors <- data.frame(name=c('a','b','c','d'))
relations <- data.frame(from=c("a", "a", "b",'c'),
                        to=c("c", "b", "c",'d'),
                        weight=c(1, 3, 5,4))
g <- graph.data.frame(relations, directed=TRUE,
                      vertices=actors)

E(g)$label=E(g)$weight
E(g)$label.cex=3
plot(g,edge.width=E(g)$weight,layout=layout.fruchterman.reingold)

关于r - 从R中的数据轻松打印漂亮的树形图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17332592/

10-12 16:43
查看更多