【问题标题】:Graphing a network in igraph or other packages in R that has each node dependent on covariates?在 igraph 或 R 中的其他包中绘制每个节点依赖于协变量的网络?
【发布时间】:2018-06-30 21:53:02
【问题描述】:

我目前在 R 中有一个网络,有邻接矩阵、边缘列表和网络格式,我想根据每个节点的协变量来绘制它。我有三个协变量,ageclassscore,其中age 为 0 或 1,class 从 1 到 50,score 从 0 到 100。我想知道哪些包在R中可能有助于绘制节点及其网络边缘,节点颜色取决于class,节点符号取决于age,节点大小取决于scoreigraph中是否存在这样的方法?谢谢!

【问题讨论】:

    标签: r graph igraph


    【解决方案1】:

    这是一个使用igraph 的示例。由于您没有提供任何数据,我用一些随机生成的数据进行说明。

    library(igraph)
    
    set.seed(12)
    g = erdos.renyi.game(10,0.33)
    
    V(g)$age   = sample(0:1, 10, replace=TRUE)
    V(g)$class = sample(50, 10,   replace=TRUE)
    V(g)$score = sample(0:100, 10, replace=TRUE)
    
    plot(g, vertex.shape = c("circle", "square")[V(g)$age + 1],
        vertex.color = rainbow(50)[V(g)$class],
        vertex.size = round(sqrt(V(g)$score+25)),
        vertex.label.dist = 1.5)
    

    评论

    1. 我质疑一个人可以区分 50 种颜色以从图表中读取 50 个类的值。

    2. 您希望节点大小取决于从 0 到 100 的分数。您肯定不希望任何节点大小为零,并且您肯定不希望任何节点比另一个节点大 100 倍节点。所以我使用size = round(sqrt(V(g)$score+25)) 来避免这些问题。

    3. 因为节点很小的时候标签很难看懂,所以我把标签移到一边vertex.label.dist = 1.5

    【讨论】:

    • 哇这太棒了!没有意识到 igraph 可以做这样的事情。谢谢!
    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多