Вот пример использования 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)
Комментарии
Я сомневаюсь, что можно различить 50 цветов, чтобы прочитать 50 значений класса из графика.
Вы хотите, чтобы размер узла зависел от оценки, которая варьируется от 0 до 100. Вы, конечно, не хотите, чтобы какой-либо узел имел нулевой размер, и вы точно не хотите, чтобы какой-либо узел был в 100 раз больше другого. узел. Поэтому я использовал size = round(sqrt(V(g)$score+25))
, чтобы избежать этих проблем.
Поскольку было очень трудно читать метки, когда узлы были очень маленькими, я немного переместил метки в сторону с vertex.label.dist = 1.5