2011-12-02 14 views
6

mam matrycę jak poniżej:jak określić etykiety wierzchołków w R

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

Teraz próbuję narysować wykres stojącego na osnowie z poniższym kodem:

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"); 

Etykiety wierzchołków to id, więc moje pytanie brzmi: jak ustawić etykietę wierzchołków przez dimnamy macierzy?

Próbowałem kodu

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

ale dostać złą wykres.

Odpowiedz

10

Istnieją 2 sposoby, aby to zrobić:

  1. Po utworzeniu obiektu wykresu, należy przypisać nazwy atrybutu wierzchołka zwanego label. Jest to ustawienie domyślne, które podczas kreślenia szuka plot.igraph().

    g1 <- graph.adjacency(adjm,add.colnames='label') 
    
  2. Użyj V iterator wyodrębnić atrybut name wierzchołek, który jest, jak są one przechowywane, jeśli używasz 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) 
    

czy inaczej daje pożądany efekt. Coś takiego:

enter image description here

+0

Dzięki, to działa. –

Powiązane problemy