Как раскрасить вершины графа? - PullRequest
1 голос
/ 02 февраля 2020

У меня есть что-то вроде этого:

library(igraph)

table <- data.frame(p = c("A","B","C","D","A"), h = c("H1","H2","H3","H1","H2"))
graf_table <- graph_from_data_frame(table,  directed = F)
plot(graf_table, edge.curved=0.5, vertex.size=40, edge.width=2)

И я бы хотел раскрасить вершины столбцами. Это означает, что вершины из столбца p красные, а из столбца h - синие.

1 Ответ

3 голосов
/ 02 февраля 2020

Вот способ раскрасить вершины графа.

  1. Создать индекс, определяющий, находится ли вершина в столбце p или нет. Индекс i является логическим вектором, внутренне закодированным как 0/1.
  2. Добавьте 1 к i, поскольку в R индексы вектора основаны на 1.
  3. Используйте это Индекс для назначения цветов вершинам.

А затем построите график, не забывая добавить префикс vertex. к параметру graphi c color.

library(igraph)

i <- names(V(graf_table)) %in% table$p
graf_table$color <- c("blue", "red")[i + 1]

plot(graf_table, edge.curved=0.5, vertex.size=40, edge.width=2,
     vertex.color = graf_table$color)

enter image description here

...