【问题标题】:different vertex shapes for each vertex of decomposed graph分解图的每个顶点的不同顶点形状
【发布时间】:2018-03-06 16:37:14
【问题描述】:

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

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

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

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

有没有人可以帮助我,我被困住了。非常感谢!

【问题讨论】:

    标签: r plot igraph bipartite vertex-attributes


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。实际上我没有使用你所有的代码,但你给了我一个意见和新的视角。我还需要问一件事,是否可以同时显示一个节点的名称和属性标签?
    • 当然你可以在plot的调用中添加类似vertex.label=paste0(V(g)$name, V(g)$attribute)的内容
    猜你喜欢
    • 2017-10-24
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多