r - 如何在r中的ggraph网络中按权重调整边的宽度

标签 r igraph network-analysis ggraph

我需要在 r 中使用 ggraph 生成一个网络。我想要的是通过权重变量(或节点大小)调整边缘宽度。 有谁知道我该怎么做?非常感谢。

示例代码如下:

library(ggraph)
library(igraph)
data=data.frame(w1=rep('like', 5), 
           w2 = c('apple', 'orange', 'pear','peach', 'banana'),
           weight= c(2,3,5,8, 15))
data %>% 
  graph_from_data_frame() %>% 
  ggraph(layout = "fr") +
  geom_edge_link(alpha = .25) +
  geom_node_point(color = "blue", size = 2) + 
  geom_node_text(aes(label = name),  repel = TRUE)

最佳答案

是的,在大多数 geom_edge_* 中,您可以使用 width aes 来做到这一点。此外,您可以使用 scale_edge_width 根据加权变量微调最小/最大宽度。请参阅下面的两个示例。

此外,我认为与 ggforce 有关的审美存在问题(这也给我带来了麻烦)。确保您已更新到最新版本的 ggraphggforce

library(ggraph)
library(igraph)
data=data.frame(w1=rep('like', 5), 
                w2 = c('apple', 'orange', 'pear','peach', 'banana'),
                weight= c(2,3,5,8, 15))

第一个有默认权重

data %>% 
  graph_from_data_frame() %>% 
  ggraph(layout = "fr") +
  geom_edge_link(alpha = .25, 
                 aes(width = weight)) +
  geom_node_point(color = "blue", size = 2) + 
  geom_node_text(aes(label = name),  repel = TRUE)+
  theme_graph()+
  labs(title = 'Graph with weighted edges', 
       subtitle = 'No scaling')

enter image description here

使用scale_edges_width 设置范围。 注意 - scale_edges* 可以接受多个参数。

data %>% 
  graph_from_data_frame() %>% 
  ggraph(layout = "fr") +
  geom_edge_link(alpha = .25, 
                 aes(width = weight)) +
  geom_node_point(color = "blue", size = 2) + 
  geom_node_text(aes(label = name),  repel = TRUE)+
  scale_edge_width(range = c(1, 20))+ # control size
  theme_graph()+
  labs(title = 'Graph with weighted edges', 
       subtitle = 'Scaling add with scale_edge_width()')

enter image description here

关于r - 如何在r中的ggraph网络中按权重调整边的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56173310/

相关文章:

r - 抑制 R 中扫描功能的输出 ('Read X items' )

r - 如何使用R中的igraph从有向子树中获取所有叶节点?

python - 为什么 networkx 在查找直径时说我的有向图已断开连接?

r - 将网络数据从 R 传输到 Gephi

r - 在ggplot2中分面数据时如何在比例尺上设置不同的中断和标签?

r - 使用 gitbook 格式和样式创建单个独立的 html bookdown 文件

r - 找到沿路径 igraph r 的距离

r - 子集有向图

r - 如何在 slider 中过滤 Shiny 传单中的年份(交互式 map )

r - 如何根据节点所属的组动态为节点着色?