r-是否可以在ggrraph中调整相对节点大小



R新增;在reprex的帮助下,我尽力提出了我的问题。

我有一个使用ggraph软件包的网络,其节点大小按程度而定。

绘制的网络看起来不太好,因为有些节点很小。

我想增加节点的相对大小。

igraph中,我会使用以下内容来增加节点的相对大小:

plot(df, vertex.cex=degree*5) 

我在ggraph中尝试了类似的方法(在下面的rerpex中(,但结果是度值的乘积,而不是节点的相对大小增加。

如果只是因为整洁/语法的方法和管理(哦,非常陡峭(学习曲线,我愿意坚持使用ggraph包(尽管如果有人对这两个包有一些想法,我可能会相信其他情况(。

下面的例子没有附加情节,因为我的声誉不够高,无法发布图片。但如果我做得对,代表应该做它应该做的事。

#load libraries
library(tidygraph)
#> 
#> Attaching package: 'tidygraph'
#> The following object is masked from 'package:stats':
#> 
#>     filter
library(ggraph)
#> Loading required package: ggplot2
# Creating a data frame
df <- rbind(c(0,1,1,0,0,1,1,0,1),
c(0,0,1,1,0,0,1,1,0),
c(0,1,0,0,0,0,1,0,0),
c(0,0,0,0,0,1,0,1,0),
c(0,0,1,0,0,1,0,1,0),
c(0,0,1,0,0,1,1,1,0),
c(1,0,1,1,0,1,0,1,0),
c(0,1,0,0,0,0,0,0,1),
c(0,1,0,0,0,1,1,0,1))
# convert to matrix
df <- as.matrix(df) #convert to matrix df; columns as headings is part of the function
# convert to tbl_graph
df <- as_tbl_graph(df)
# plot network; nodes sized by degree; nodes too small
df %>% 
mutate(degree = centrality_degree()) %>% 
ggraph(layout = 'kk') + 
geom_node_point(aes(size = degree))+
geom_edge_link()
# tried multiplying degree by a value as below; changes the 
# value of the degrees and leaves node size unchanged.
df %>% 
mutate(degree = centrality_degree()) %>% 
ggraph(layout = 'kk') + 
geom_node_point(aes(size = 2*degree))+
geom_edge_link()

由reprex包于2020-07-18创建(v0.3.0(

我找到了一个可以查看此链接的解决方案:R 中的网络可视化

关键是在绘图的管道中添加scale_size_continuous。我尝试过这个选项:

df %>% 
mutate(degree = centrality_degree()) %>% 
ggraph(layout = 'kk') + 
geom_node_point(aes(size = degree)) +
scale_size_continuous(range = c(2, 5)) +
geom_edge_link()

最新更新