如何在R中指定顶点的标签

时间:2011-12-02 05:44:04

标签: r graph

我有一个矩阵如下:

          jerry    peter    king
 jerry     1       0        0    
 peter     0       1        0    
 king      1       1        1              

现在我正在尝试使用下面的代码绘制一个代表矩阵的图形:

t <- read.table("../data/table.dat");
adjm <- data.matrix(t);
g1 <- graph.adjacency(adjm,add.colnames=NULL);
plot(g1, main="social network", vertex.color="white", edge.color="grey", vertex.size=8,
     vertex.frame.color="yellow");

顶点的标签是id,所以我的问题是如何通过矩阵的dimnames设置顶点的标签?

我尝试过代码

vertex.label=attr(adjm,"dimnames")

但得到错误的图表。

1 个答案:

答案 0 :(得分:10)

有两种方法可以做到这一点:

  1. 创建图形对象时,将名称指定给名为label的顶点属性。这是plot.igraph()在绘图时查找的默认值。

    g1 <- graph.adjacency(adjm,add.colnames='label')
    
  2. 使用V迭代器提取name顶点属性,如果您使用add.colnames=NULL,就会将其存储起来。

    plot(g1, main="social network", vertex.color="white", edge.color="grey", vertex.size=8, vertex.frame.color="yellow", vertex.label=V(g1)$name)
    
  3. 无论哪种方式都能为您提供理想的结果。类似的东西:

    enter image description here