gpt4 book ai didi

r - ggraph 在 geom_node_point 中使用填充和颜色

转载 作者:行者123 更新时间:2023-12-02 02:17:33 24 4
gpt4 key购买 nike

我正在尝试制作一个示例 self 网络图,但使用“填充”为节点着色对我来说不起作用。这可能是一个微不足道的问题,但我无法找出问题所在。这是我的代码:

library(tidyverse)
library(igraph)
library(ggraph)
library(tidygraph)
library(ggplot2)

edges <- read.table(text =
"ego wave fid1 fid2 fid3 fid4 fid5
Ego 1 Friend_A Friend_B Friend_C NA Friend_D
Ego 2 Friend_E Friend_F NA NA Friend_G
Ego 3 Friend_H NA Friend_I Friend_G Friend_J
Ego 4 Friend_H NA NA NA NA
Ego 5 Friend_K NA NA NA Friend_F", header = TRUE) %>%

mutate_all(function(x) gsub("_"," ",x)) %>%
pivot_longer(.,
cols = c(fid1:fid5)) %>%
select(., ego, alter = value, wave) %>% na.omit()

ego <- as.data.frame(edges$ego) %>%
rename("id" = "edges$ego")
alter <- as.data.frame(edges$alter) %>%
rename("id" = "edges$alter")

nodes <- bind_rows(ego, alter) %>% distinct() %>%
mutate(label = case_when(id == "Ego" ~ 1,
TRUE ~ 0))


g1 <- graph_from_data_frame(d = filter(edges, wave == 1), vertices = nodes, directed = TRUE) %>%
delete.vertices(., which(degree(.)==0))


as_tbl_graph(g1) %>%
create_layout(., layout = 'stress') %>%
ggraph(.) +
geom_edge_link(color = "grey",
arrow = arrow(type = "closed",
angle = 25,
length = unit(1.5, 'mm')),
end_cap = circle(3.5, 'mm'),
width = 0.5, show.legend = FALSE) +
geom_node_point(aes(fill = factor(label)), size = 7, color = "black") +
scale_fill_hue(l=40) +
geom_node_text(aes(label = name), vjust = -1) +
theme_graph()+
theme(legend.position = "none")+
labs(title = "Wave 1")

通过这段代码,我得到了这个图:enter image description here

但是,我的目标是让节点由标签变量着色(其中 self 的颜色与改变者不同),并在每个节点周围有一个黑色轮廓。知道我在这里做错了什么吗?

最佳答案

更新

根据 tjebo 的输入(非常感谢!)(“...并在每个节点周围有一个黑色轮廓”)的解决方案可能是:

  • 更改此行

geom_node_point(aes(填充=因子(标签)),大小= 7,颜色=“黑色”)+

geom_node_point(aes(填充=因子(标签)),形状= 21,大小= 7,颜色=“黑色”)+

输出 enter image description here

第一次尝试

更改:geom_node_point(aes(fill = Factor(label)), size = 7, color = "black") +geom_node_point(aes(color = Factor(label))) ,大小 = 7) +

关于r - ggraph 在 geom_node_point 中使用填充和颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66948228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com