【问题标题】:Choose color ggraph R选择颜色 ggraph R
【发布时间】:2017-05-26 14:01:05
【问题描述】:

我尝试绘制一个二分网络,其边缘与其中一个节点的颜色相同。
例如,我们以一个电影/演员二分图为例,有 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) 返回"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) 返回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 种颜色)?

希望我已经说清楚了。

【问题讨论】:

    标签: r ggplot2 ggraph


    【解决方案1】:

    两个小时后,我终于找到了解决办法!

    我使用函数gg_color_hue定义here来模拟用于节点的6种颜色,然后:

    + scale_edge_colour_manual(values = cols[1:5])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2019-10-05
      相关资源
      最近更新 更多