0

目标(在 R 环境中):从数据框中提取节点和边,以使用它们对图形进行建模!!

我正在尝试学习如何使用 DiagrammeR 或任何其他图形建模库,以便从数据框中获取如下图(您可以点击链接 [The GRAPH 1 ]):

数据框:

a b c classes
1 2 0  a
0 0 2  b
0 1 0  c

我已经通过这些命令手动DiagrammeR library使用和定义了节点和边:

library(DiagrammeR)
egrViz("
digraph boxes_and_circles{
#add the node statement
node[shape=box]

a; b; c;
#add the nodge statement

a->a [label=1]; a-> b[label=2]; b->c[label=2]; c->b[label=1]



graph [nodesep=0.1]

}

  ")

您能帮我理解如何自动获取节点和边吗?先感谢您。

在此处输入图像描述

4

1 回答 1

0

你可以用这个igraph包来做到这一点。您的数据框是一个邻接矩阵,而 igraph 包含一个将其制成图形的函数。我下面的代码添加了一个布局,以将顶点定位在您在示例图中指示的位置。

## Your data
df = read.table(text="a b c classes
1 2 0  a
0 0 2  b
0 1 0  c", 
header=TRUE)

library(igraph)

g = graph_from_adjacency_matrix(as.matrix(df[,1:3]), weighted=TRUE)
LO = matrix(c(0,0,0,3,2,1), ncol=2)
plot(g, layout=LO, edge.label=E(g)$weight, vertex.shape="rectangle",
    vertex.color="white", edge.curved=c(0,0,0.15,0.15))

邻接矩阵图

于 2018-12-11T19:53:11.353 回答