如何根据节点社区为边缘着色?

时间:2019-09-08 07:10:40

标签: r ggraph tidygraph

如何在tbl_graph的边缘添加颜色信息?我想根据'to'和'from'节点的颜色为边缘着色:如果两个节点的颜色相同,则它们之间的边缘应具有相同的颜色。

library(tidyverse)
library(tidygraph)
library(ggraph)

create_notable('tutte') %>%
activate(nodes) %>%
mutate(group = as.factor(group_louvain())) %>%
ggraph() +
geom_node_point(aes(color=group),size=7) +
geom_edge_link()

1 个答案:

答案 0 :(得分:0)

好的...我找到了答案!

g <- create_notable('tutte') %>%
  activate(nodes) %>%
  mutate(id = row_number(),
         group = as.factor(group_louvain()))

g <- g %>%
  activate(edges) %>%
  mutate(group_from = .N()$group[from],
         group_to = .N()$group[to]) %>%
  mutate(ge = ifelse( group_from == group_to, group_from, NA))




ggraph(g) +
  geom_node_point(aes(color=group),size=7) +
  geom_edge_link(aes(color = as.factor(ge)) )