代码之家  ›  专栏  ›  技术社区  ›  Ayse Kubra

分解图每个顶点的不同顶点形状

  •  0
  • Ayse Kubra  · 技术社区  · 7 年前

    我有一个非常大的二部网络模型,我用500万行数据集创建了这个模型。我分解了我的网络模型,因为我无法绘制这样大小的图。现在我只需要一个接一个地绘制分解图形。这没有问题。但是我想根据每个节点的属性绘制一个图形。例如,我希望图形G上的“a”属性有一个正方形,而“B”属性有一个三角形。除此之外,我还想通过属性添加顶点标签。以下是我的代码,用于在创建二部图G及其工作后绘制图的第一个组件:

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

    我尝试了这样的方法来根据图形属性添加标签和更改顶点形状,但没有成功:

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

    有人能帮我吗,我卡住了。非常感谢你!

    1 回复  |  直到 7 年前
        1
  •  0
  •   emilliman5    7 年前

    这个 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)))