我有一个非常大的二分网络模型,我是从500万行数据集中创建的。我分解了我的网络模型,因为我无法绘制这个大小的图形。现在我需要的是逐个绘制分解图形。这没有问题。但我想根据每个节点的属性绘制一个形状的图形。例如,我想在图G上使用“A”属性的方块,在“B”属性中使用三角形。除此之外,我想按属性添加顶点标签。这是我创建二分G及其工作后绘制图表的第一个组成部分的代码:
components <- decompose(G)
plot(components[[1]])
我尝试过这样的方法来添加标签并根据图形属性更改顶点形状,但它不起作用:
plot(components[[1]], vertex.label= V(G)$attributes,
vertex.shape=c("square", "triangle"))
有没有人可以帮助我,我被困住了。非常感谢你!
答案 0 :(得分:0)
components
函数返回构成组件的顶点列表。因此,您需要遍历列表,创建子图和绘图。至于绘图属性,您需要提供一个可重现的示例供我们帮助。
library(igraph)
set.seed(8675309)
g <- sample_gnp(200, p = 0.01)
V(g)$name <- paste0("Node", 1:vcount(g))
V(g)$shape <- sample(c("circle","square"), vcount(g), replace = T)
clu <- components(g)
grps <- groups(clu)
lapply(grps, function(x) plot(induced_subgraph(g, x)))