在 igraph 中创建二分图
creating a bipartite graph in igraph
我正在尝试使用 igraph 创建二分图,但收到一条错误消息,提示我需要提供 'types' 参数。如果每一侧的类型都相同,我该怎么做?即我想要在每一侧都有一个节点,即 'off'、'low' 等。我在下面给出了一些示例代码。
from <- c('off','low','medium','low','strong','off','low')
to <- c('medium','low','strong','off','low','off','low' )
frequency <- c(20,12,5,1,41,40,2)
df <- as.matrix(cbind (from, to))
您定义节点的类型,它们属于这两个组中的哪一个。此外,您不能有两个具有相同 ID 的节点。但是,您可以在多个节点上放置相同的标签。我想这就是你想要的,所以这里有一个图表,有两个标记为 "off" 的节点,两个标记为 "low" 的节点,等等。默认布局没有强调我认为你想要的二分性质,所以我提供了不同的布局。这是你想要的吗?
EL = c(1,7,2,6,3,8,2,5,4,6,1,5,2,6)
types = rep(0:1, each=4)
g = make_bipartite_graph(types, EL, directed = TRUE)
g = set_vertex_attr(g, "label", value = rep(c('off','low','medium', 'strong'), 2))
LO = matrix(c(1,1,1,2,1,3,1,4,2,1,2,2,2,3,2,4),
nrow=8, ncol=2, byrow=TRUE)
plot(g, layout = LO)
我正在尝试使用 igraph 创建二分图,但收到一条错误消息,提示我需要提供 'types' 参数。如果每一侧的类型都相同,我该怎么做?即我想要在每一侧都有一个节点,即 'off'、'low' 等。我在下面给出了一些示例代码。
from <- c('off','low','medium','low','strong','off','low')
to <- c('medium','low','strong','off','low','off','low' )
frequency <- c(20,12,5,1,41,40,2)
df <- as.matrix(cbind (from, to))
您定义节点的类型,它们属于这两个组中的哪一个。此外,您不能有两个具有相同 ID 的节点。但是,您可以在多个节点上放置相同的标签。我想这就是你想要的,所以这里有一个图表,有两个标记为 "off" 的节点,两个标记为 "low" 的节点,等等。默认布局没有强调我认为你想要的二分性质,所以我提供了不同的布局。这是你想要的吗?
EL = c(1,7,2,6,3,8,2,5,4,6,1,5,2,6)
types = rep(0:1, each=4)
g = make_bipartite_graph(types, EL, directed = TRUE)
g = set_vertex_attr(g, "label", value = rep(c('off','low','medium', 'strong'), 2))
LO = matrix(c(1,1,1,2,1,3,1,4,2,1,2,2,2,3,2,4),
nrow=8, ncol=2, byrow=TRUE)
plot(g, layout = LO)