2011-12-02 30 views
6

我有如下的矩陣:如何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") 

但得到錯誤的圖形。

回答

10

有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

謝謝,它的工作原理。 –