首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ggraph中的图例线粗细

ggraph中的图例线粗细
EN

Stack Overflow用户
提问于 2019-06-07 22:25:14
回答 1查看 687关注 0票数 3

当使用ggraph时,有没有一种方法可以加厚边缘颜色的图例线?我正在尝试覆盖,但无济于事。下面是一个例子:

代码语言:javascript
复制
library(tidyverse)
library(igraph)
library(ggraph)

set.seed(20190607)

#create dummy data
Nodes <- tibble(source = sample(letters, 8))
Edges <- Nodes %>% 
  mutate(target = source) %>% 
  expand.grid() %>% 
  #assign a random weight & color
  mutate(weight = runif(nrow(.)),
         color = sample(LETTERS[1:5], nrow(.), replace = TRUE)) %>% 
  #limit to a subset of all combinations
  filter(target != source,
         weight > 0.7)


#make the plot
Edges %>% 
  graph_from_data_frame(vertices = Nodes) %>% 
  ggraph(layout = "kk") + 
  #link width and color are dynamic
  geom_edge_link(alpha = 0.5, aes(width = weight, color = color)) + 
  geom_node_point(size = 10) + 
  theme_graph() + 
  #don't need a legend for edge width, but the color override doesn't work
  guides(edge_width = FALSE,
         edge_color = guide_legend(override.aes = list(size = 2))) 

我喜欢的输出看起来更像这样:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-08 00:34:00

我认为你真的想要调整width的美学,而不是size,所以这是一个小问题。

但棘手的部分(至少对我而言)是因为ggraph会自动扩展美学名称,例如width >>> edge_width,所以在尝试覆盖guide_legend()中的美学名称时,您需要使用edge_x格式。

所以你最终会得到这样的结果:

代码语言:javascript
复制
Edges %>% 
  graph_from_data_frame(vertices = Nodes) %>% 
  ggraph(layout = "kk") + 
  geom_edge_link(alpha = 0.5, aes(width = weight, edge_color = color)) + 
  geom_node_point(size = 10) + 
  theme_graph() + 
  guides(edge_color = guide_legend(override.aes = list(edge_width = 5)),
         edge_width = F) 

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56496168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档