从另一个问题中使用这个可复制的例子。如何标记/着色本地邻域图所基于的中心节点。(在本例中为“x”)
library(tidygraph)
library(ggraph)
# Example
net <- tibble::tibble(A = letters[1:6],
B = rep(c("x", "y"), each = 3)) %>%
tidygraph::as_tbl_graph()
net %>%
tidygraph::convert(to_local_neighborhood,
node = which(.N()$name == "x"),
order = 1,
mode = "all") %>%
ggraph(layout = "nicely") +
geom_edge_link() +
geom_node_point(size = 10, fill = "white", shape = 21) +
geom_node_text(aes(label = name)) +
theme_graph()我得到的是:

我想要的:

我觉得geom_node_point应该有条件填充,但我不知道这是否可能.
发布于 2022-03-28 09:43:07
你可以:
net %>%
tidygraph::convert(to_local_neighborhood,
node = which(.N()$name == 'x'),
order = 1,
mode = "all") %>%
mutate(root = ifelse(node_is_center(), 'red', 'white')) %>%
ggraph(layout = "nicely") +
geom_edge_link() +
geom_node_point(size = 10, aes(fill = root), shape = 21) +
geom_node_text(aes(label = name)) +
scale_fill_identity() +
theme_graph()

https://stackoverflow.com/questions/71644885
复制相似问题