如何R中指定顶点的标签

问题描述:

我有如下的矩阵:如何R中指定顶点的标签

  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,所以我的问题是如何通过矩阵的dimname来设置顶点的标签?

我试图代码

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

但得到错误的图形。

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

  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) 
    

无论哪种方式,都会给你想要的结果。例如:

enter image description here

+0

谢谢,它的工作原理。 –