设置特定节点和边以创建图形网络

时间:2017-05-15 09:42:55

标签: r igraph

我有这个数据集:

article1    article2    article3
R1  R1  R20
R2  R13 R5
R3  R7  R21
R4  R8  R22
R5  R14 R8
R11 R15 R23
R12 R9  R24
R6  R10 R25
    R2  R10
    R6  R9
    R16 R26
    R17 R27
    R4  R28
    R18 R29
    R19 R3
        R30
        R31
        R1
        R32
        R7
        R33

我想使用igraph创建一个图形网络,并将其作为节点文章1,2,3和边缘R1,2,...

如何在igraph中设置节点和边缘并生成图形。

我已经计算了数据集中每个R的频率,这里是列表:

R   frequency
R1  3
R2  2
R3  2
R4  2
R5  2
R6  2
R7  2
R8  2
R9  2
R10 2
R11 1
R12 1
R13 1
R14 1
R15 1
R16 1
R17 1
R18 1
R19 1
R20 1
R21 1
R22 1
R23 1
R24 1
R25 1
R26 1
R27 1
R28 1
R29 1
R30 1
R31 1
R32 1
R33 1

1 个答案:

答案 0 :(得分:2)

试试这个例子:

library(dplyr)
library(tidyr)
library(igraph)

graphDat <- df1 %>% 
  gather(key = "From", "To", na.rm = TRUE) %>% 
  graph_from_data_frame()

plot(graphDat)

enter image description here

以下是更多network plot options的优质资源。

数据

df1 <- read.table(text = "article1  article2    article3
R1  R1  R20
                  R2    R13 R5
                  R3    R7  R21
                  R4    R8  R22
                  R5    R14 R8
                  R11   R15 R23
                  R12   R9  R24
                  R6    R10 R25
                  NA    R2  R10
                  NA    R6  R9
                  NA    R16 R26
                  NA    R17 R27
                  NA    R4  R28
                  NA    R18 R29
                  NA    R19 R3
                  NA    R30 NA
                  NA    R31 NA
                  NA    R1  NA
                  NA    R32 NA
                  NA    R7  NA
                  NA    R33 NA
                  ", header = TRUE, stringsAsFactors = FALSE)