r - 从 R 中的数据轻松打印漂亮的树状图

标签 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

最佳答案

例如,使用 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)

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

相关文章:

随机森林似乎不能处理超过 32 类因素。我该如何将这些因素纳入训练模型?

r - 按组查找数据帧中向量之间的最接近值

R:如果已经加载,则重新加载 google chrome URL

r - `do.call` 使用限定命令

regex - R在data.frame中获取双/三重姓氏的首字母

r - 需要安装Go才能使用Academic Hugo主题的blogdown

R:将 CrossTable 导出到 Latex

r - 基于 R 中日期的匹配值的 if 语句

r - 更改从在浏览器中打开的 Shiny 应用程序下载的绘图文件的文件名

r - ggplot2:使用不同的y轴刻度调整facet_wrap()中的geom_text()位置