2015-02-20 2 views
0

ниже - мои коды воспроизводимых образцов.Создание переменных с группой в R igraph

sender_code <- c(12 ,1 ,6 ,19 ,7 ,8 ,3 ,17 ,13 ,10 ,4 ,9 ,2 ,5 

,15 ,11 ,16 ,20 ,14 ,18) 
receiver_code <- c(20 ,16 ,7 ,3 ,4 ,11 ,8 ,2 ,10 ,12 ,17 ,5 ,1 ,18 ,13 ,9 ,6 ,15 ,19 ,14) 

sender_country <- ifelse(sender_code<6,"Phil", 
         ifelse(sender_code<10,"Japan", 
          ifelse(sender_code<16,"Brazil", 
            "Norway" 
            ) 
          ) 
        ) 



receiver_country <- ifelse(receiver_code<6,"Phil", 
        ifelse(receiver_code<10,"Japan", 
          ifelse(receiver_code<16,"Brazil", 
            "Norway" 
          ) 
        ) 
) 



message<- data.frame(sender_code,receiver_code,sender_country,receiver_country 

Я хочу подключить каждый отправитель к каждому приемнику, а затем код цвета их на основе их страна, как этот график:

http://revolution-computing.typepad.com/.a/6a010534b1db25970b017c379af59c970b-pi

Проблемы я не знаем, что функция на igraph который может создать такую ​​диаграмму на моих данных.

Заранее спасибо

+1

Вы хотите, чтобы граф соединений (ребра), основанные на '_code' переменных или' _country' переменных? – Spacedman

+0

@Spacedman, я хочу, чтобы соединение основано на _коде. Спасибо – jbest

ответ

2

Попробуйте для начала:

library(igraph) 
with(message, 
    plot(graph.data.frame(message), 
     vertex.color = sender_country, 
     vertex.label.color = "white", 
     edge.color = sender_country) 
) 

Более подробную информацию под ?plot.igraph.

enter image description here

+0

Привет, я использовал ваш код на моем образце данных и заметил, что мои стрелы и линии, связанные с ним, намного толще, чем ваши. Это не очень полезно для большого набора данных. В любом случае, я могу редактировать размер стрелок, которыми пользуюсь Mac. – jbest

+1

Посмотрите на 1-й пример в '? Igraph.plotting'. Вы должны иметь возможность настраивать размеры стрелок, используя атрибуты 'edge.arrow.size' и' edge.arrow.width'. – lukeA

Смежные вопросы