Отобразить сеть в igraph или других пакетах в R, в которой каждый узел зависит от ковариат? - PullRequest
0 голосов
/ 30 июня 2018

В настоящее время у меня есть сеть в R, доступная в матрице смежности, списке ребер и сетевом формате, которую я хотел бы построить на основе ковариат каждого из узлов. У меня есть три ковариаты, age, class и score, с age равным 0 или 1, class в диапазоне от 1 до 50 и score от 0 до 100. Мне интересно, какие пакеты в R может облегчить построение узлов и их краев сети с использованием цветов узлов в зависимости от class, символа узла в зависимости от age и размера узла в зависимости от score? Существуют ли такие методы в igraph? Спасибо!

1 Ответ

0 голосов
/ 30 июня 2018

Вот пример использования igraph. Поскольку вы не предоставляете никаких данных, я проиллюстрирую некоторые случайно сгенерированные данные.

library(igraph)

set.seed(12)
g = erdos.renyi.game(10,0.33)

V(g)$age   = sample(0:1, 10, replace=TRUE)
V(g)$class = sample(50, 10,   replace=TRUE)
V(g)$score = sample(0:100, 10, replace=TRUE)

plot(g, vertex.shape = c("circle", "square")[V(g)$age + 1],
    vertex.color = rainbow(50)[V(g)$class],
    vertex.size = round(sqrt(V(g)$score+25)),
    vertex.label.dist = 1.5)

Variations on Nodes

Комментарии

  1. Я сомневаюсь, что можно различить 50 цветов, чтобы прочитать 50 значений класса из графика.

  2. Вы хотите, чтобы размер узла зависел от оценки, которая варьируется от 0 до 100. Вы, конечно, не хотите, чтобы какой-либо узел имел нулевой размер, и вы точно не хотите, чтобы какой-либо узел был в 100 раз больше другого. узел. Поэтому я использовал size = round(sqrt(V(g)$score+25)), чтобы избежать этих проблем.

  3. Поскольку было очень трудно читать метки, когда узлы были очень маленькими, я немного переместил метки в сторону с vertex.label.dist = 1.5

...