ggraph中的图例线厚度

ggraph中的图例线厚度,r,ggraph,R,Ggraph,使用ggraph时,是否有办法加厚边缘颜色的图例线?我正试图覆盖,但没有用。下面是一个例子: library(tidyverse) library(igraph) library(ggraph) set.seed(20190607) #create dummy data Nodes <- tibble(source = sample(letters, 8)) Edges <- Nodes %>% mutate(target = source) %>% ex

使用
ggraph
时,是否有办法加厚边缘颜色的图例线?我正试图覆盖,但没有用。下面是一个例子:

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))) 
库(tidyverse)
图书馆(igraph)
图书馆(ggraph)
种子集(20190607)
#创建虚拟数据
节点%
展开.grid()%>%
#指定随机权重和颜色
突变(重量=runif(nrow(.)),
颜色=样本(字母[1:5],nrow(.),replace=TRUE))%>%
#限制为所有组合的子集
过滤器(目标!=源,
重量>0.7)
#策划
边缘%>%
图\u来自\u数据\u帧(顶点=节点)%>%
ggraph(layout=“kk”)+
#链接宽度和颜色是动态的
geom_edge_链接(alpha=0.5,aes(宽度=重量,颜色=颜色))+
几何节点点(尺寸=10)+
主题图()
#边缘宽度不需要图例,但颜色替代不起作用
导轨(边缘宽度=假,
边缘\颜色=指南\图例(override.aes=列表(大小=2)))

我的首选输出更像这样:

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) 

我想你真的想调整
宽度
美观,而不是
尺寸
,所以这只是一个小修正

但棘手的部分(至少对我来说)是因为
ggraph
自动扩展美学名称,例如width>>>edge\u width,所以在尝试覆盖
guide\u legend()
中的美学时,需要使用edge\u x格式

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

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)