我有这些载体:
>dput(SHLRK03)
c("CHSLSCR01", "SHLRK04", "SHLRK05", "WLLWCR01", "WLLWCR02",
"WNBGORV01", "WNBGORV02", "WNBGORV03", "WNBGORV04", "WNBGORV05",
"WNBGORV06")
> dput(SHLRK04)
"SHLRK05"
> dput(WNBGORV01)
c("WLLWCR02", "WNBGORV02", "WNBGORV03", "WNBGORV04", "WNBGORV05",
"WNBGORV06")
我想通过以下方式获得一个连接图:
我还有几个相互连接的值。我试图在堆栈溢出和网络上搜索这种类型的图,但无法找到任何示例。
有人可以帮我解决这个问题吗? 我感谢您的时间和精力。
答案 0 :(得分:7)
这样做的一种方法是构建相应的adjacency matrix。例如,
vertices <- c("SHLRK03", unique(c(SHLRK03, SHLRK04, WNBGORV01)))
adj.mat <- matrix(0, nrow=length(vertices), ncol=length(vertices),
dimnames=list(vertices, vertices))
adj.mat["SHLRK03", colnames(adj.mat) %in% SHLRK03] <- 1
adj.mat["SHLRK04", colnames(adj.mat) %in% SHLRK04] <- 1
adj.mat["WNBGORV01", colnames(adj.mat) %in% WNBGORV01] <- 1
library(igraph)
g <- graph.adjacency(adj.mat)
V(g)$label <- V(g)$name
plot(g)
您可以在在线文档中找到多种图形布局,顶点标注等选项。这是上面代码的默认渲染。
如果你有这样的几个向量,你当然可以通过一些辅助函数自动填充邻接矩阵。