选择颜色 ggraph R
Choose color ggraph R
我尝试绘制一个二分网络,其边的颜色与其中一个节点的颜色相同。
例如,我们以movie/actor二分图为例,有7部电影,15个演员,每个演员都有一个国籍。
比起演员的国籍,我更想在演员和同色电影之间有缘
NG1 <- 7
NG2 <- 15
Nat <- sample(x = c("French", "English", "Italian", "American", "Chinese"), size = NG2, replace = T)
G <- graph.empty(NG1+NG2)
[这里,head(Nat)
returns "Italian" "English" "American" "French" "French" "French"
]
创建边缘列表的代码:
E1 <- sample(x=1:NG1, size = 30, replace = T)
E2 <- sample(x=(NG1+1):(NG1+NG2), size = 30, replace = T)
EL <- c(rbind(E1, E2))
G <- add_edges(G, EL, nat = Nat[E2-NG1])
[这里,head(EL)
returns 1 14 3 13 2 15
]
不同的 aes 参数:
GROUP <- c(rep("Movie", NG1), rep("Act", NG2))
COL <- c(rep("Movie", NG1), Nat)
TXT <- c(as.character(1:NG1), letters[1:NG2])
现在 ggraph 说明:
ggraph(G, layout = 'kk') +
geom_node_point(aes(col = COL, shape = GROUP, size = 7)) +
geom_edge_link(aes(col = nat)) +
geom_node_text(aes(label = TXT), size = 4)
正如你在底部看到的,意大利演员 a 有一个蓝色节点,但与电影 7 的粉红色边缘相连......我如何指定节点的调色板(这里有 6 种颜色) 和边(节点的前 5 种颜色)?
希望我说清楚了。
经过两个小时,我终于找到了解决办法!
我使用 gg_color_hue
定义的函数 here 来模拟用于节点的 6 种颜色,然后:
+ scale_edge_colour_manual(values = cols[1:5])
我尝试绘制一个二分网络,其边的颜色与其中一个节点的颜色相同。
例如,我们以movie/actor二分图为例,有7部电影,15个演员,每个演员都有一个国籍。
比起演员的国籍,我更想在演员和同色电影之间有缘
NG1 <- 7
NG2 <- 15
Nat <- sample(x = c("French", "English", "Italian", "American", "Chinese"), size = NG2, replace = T)
G <- graph.empty(NG1+NG2)
[这里,head(Nat)
returns "Italian" "English" "American" "French" "French" "French"
]
创建边缘列表的代码:
E1 <- sample(x=1:NG1, size = 30, replace = T)
E2 <- sample(x=(NG1+1):(NG1+NG2), size = 30, replace = T)
EL <- c(rbind(E1, E2))
G <- add_edges(G, EL, nat = Nat[E2-NG1])
[这里,head(EL)
returns 1 14 3 13 2 15
]
不同的 aes 参数:
GROUP <- c(rep("Movie", NG1), rep("Act", NG2))
COL <- c(rep("Movie", NG1), Nat)
TXT <- c(as.character(1:NG1), letters[1:NG2])
现在 ggraph 说明:
ggraph(G, layout = 'kk') +
geom_node_point(aes(col = COL, shape = GROUP, size = 7)) +
geom_edge_link(aes(col = nat)) +
geom_node_text(aes(label = TXT), size = 4)
正如你在底部看到的,意大利演员 a 有一个蓝色节点,但与电影 7 的粉红色边缘相连......我如何指定节点的调色板(这里有 6 种颜色) 和边(节点的前 5 种颜色)?
希望我说清楚了。
经过两个小时,我终于找到了解决办法!
我使用 gg_color_hue
定义的函数 here 来模拟用于节点的 6 种颜色,然后:
+ scale_edge_colour_manual(values = cols[1:5])