【问题标题】:Defining Node shape in a Network plot with an additional attribute table in R使用 R 中的附加属性表在网络图中定义节点形状
【发布时间】:2022-07-08 18:39:23
【问题描述】:

我正在绘制一个网络,它包含两种不同类型的节点,我想用不同的形状对其进行可视化。为此,我制作了一个附加表,在该表中我使用二进制系统指定了哪种结构是哪种类型。现在我想在我的绘图函数中指定带有 1 的结构是三角形,而带有 0 的结构是圆形。 我的网络数据采用邻接矩阵的格式(我使用 igraph),并且我使用 ggnet2 来绘制它。

这是我导入数据的方式:

am <- as.matrix(read.csv2("mydata.csv", header = T, row.names = 1))
g <- graph_from_adjacency_matrix(am, mode = "undirected")
attr <- read.csv2("myattributes.csv", header = T, row.names = 1)

这是我将如何绘制它,但我不知道如何指定 shape 函数

ggnet2(g, size = "degree", node.color = "darkgreen", shape = ??????)

提前感谢您的帮助!

【问题讨论】:

    标签: r igraph ggnet2


    【解决方案1】:

    请注意,使用ggnet2 绘制igraphs 的包要求包括ggplot2snanetwork 以及intergraph 作为桥梁。

    ggnet2 确实更漂亮,但igraph-方式是这样的:

    g <- erdos.renyi.game(100,100,'gnm')
    V(g)$shape <- sample(c('csquare','circle'), 100, replace=T)
    plot(g, vertex.label = NA)
    

    请注意,我在上面的g 中添加了两个igraph 样式的形状作为顶点属性。在ggent2 中,您可以提供带有形状的向量,但它们可以是任何值(甚至是因子)或数字(通常的灰色圆圈是19。试试这个在ggnet2 中绘图

    ggnet2(g, shape=19)
    ggnet2(g, shape=10+round(1:100/10))
    ggnet2(g, shape=factor(V(g)$shape))
    V(g)$shape <- sample(c('One shape','Another shape'), 100, replace=T)
    ggnet2(g, shape=V(g)$shape, size = "degree", node.color = "darkgreen")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      相关资源
      最近更新 更多