Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中创建映射路径频率的树图_R_Tree - Fatal编程技术网

在R中创建映射路径频率的树图

在R中创建映射路径频率的树图,r,tree,R,Tree,我很难给这篇文章起标题,但希望下面的例子和解释能有所帮助。我想创建一个树形图,显示数据中不同“路径”的频率。我有以下数据帧: zed = data.frame( node1 = c("A", "A", "A", "A", "A", "A", "A", "A"), node2 = c("A", "B", "A", "B", "A", "B", "A", "B"), node3 = c("B", "C", "D", "D", "C", "D", "C", "C"), node4 =

我很难给这篇文章起标题,但希望下面的例子和解释能有所帮助。我想创建一个树形图,显示数据中不同“路径”的频率。我有以下数据帧:

zed = data.frame(
  node1 = c("A", "A", "A", "A", "A", "A", "A", "A"),
  node2 = c("A", "B", "A", "B", "A", "B", "A", "B"),
  node3 = c("B", "C", "D", "D", "C", "D", "C", "C"),
  node4 = c("C", "C", "D", "D", "D", "D", "D", "C"),
  stringsAsFactors = FALSE
)
我想在R中创建一个图形,沿着这些线(在excel中快速绘制的草图):

实际上,数据帧中的每一行都是一条路径。所有路径都从“A”开始,这就是为什么“A”是单个顶部节点,然后(在本例中)它们前进到B、C和D。某些路径出现的频率比其他路径更高(A->B->C->C显示两次,而其他一些路径显示一次),我想这会反映在节点的大小上


我不确定是否应该为此重新格式化我的数据,也不确定哪个R图形库最适合这样做。很高兴添加更多内容-感谢您的帮助

我只想看看iGraph和data.tree两个包,看看哪个包更适合制作我的这个图


如果我成功了,我会尽量记住在这里发布更新。

我将给出的建议是针对
igraph
软件包:

要从数据帧创建图形,您的数据必须采用长格式,其中前两列表示节点链接的来源(第一列)和链接的目的地(第二列)。此外,节点的名称必须是唯一的,因此从“A”到“A”的边只是指向自身的节点。您的数据具有名为“A”的不同节点。使用您的数据,您需要执行以下操作:

zed$node1 <- paste0(zed$node1, '_1')
zed$node2 <- paste0(zed$node2, '_2')
zed$node3 <- paste0(zed$node3, '_3_', 1:nrow(zed))
zed$node4 <- paste0(zed$node4, '_4_', 1:nrow(zed))

edgelist <- rbind(
  as.matrix(zed[c('node1', 'node2')]),
  as.matrix(zed[c('node2', 'node3')]),
  as.matrix(zed[c('node3', 'node4')])
)
library(igraph)
g <- graph_from_data_frame(edgelist)
plot(g, layout = layout_as_tree(g))

zed$node1我不清楚你在问什么。您似乎要求节点的大小反映路径的频率,但大多数节点都涉及多条路径。因此,此大小必须反映多个频率。