从R中的数据轻松打印漂亮的树形图

时间:2013-06-27 00:20:09

标签: r

我有一个像下面这样的数据集(这将是任意长度,但最后有一个计数列):

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

数据帧的最后一个向量汇总了树的不同分支,但是有可视化的漂亮图表。最后一个向量,因为我们可以有任意数量的级别。如果没有写出我自己的一组树算法,有没有人知道一条简单的前进道路?

图片图片: enter image description here

1 个答案:

答案 0 :(得分:1)

例如,使用igraph包,您可以轻松完成工作。我更正了数据中的一些拼写错误并添加了新的边缘以获得更漂亮的图形。我的图表看起来像这样:

enter image description here

这是我的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)