0

我有一个非常大的二分网络模型,它是从 500 万行数据集中创建的。我分解了我的网络模型,因为我无法绘制这种大小的图表。现在我需要的是一张一张地绘制分解图形。没有问题。但是我想根据每个节点的属性来绘制带有形状的图形。例如,我想要一个正方形代表我的图表 G 上的“A”属性,而一个三角形代表“B”属性。除此之外,我想按属性添加顶点标签。这是我在创建二分 G 及其工作后绘制图的第一个组件的代码:

    components <- decompose(G)
    plot(components[[1]]) 

我尝试了这样的方法来添加标签并根据图形属性更改顶点形状,但它不起作用:

    plot(components[[1]], vertex.label= V(G)$attributes, 
    vertex.shape=c("square", "triangle"))

有没有人可以帮助我,我被卡住了。太感谢了!

4

1 回答 1

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)))
于 2018-03-08T19:50:16.993 回答