gpt4 book ai didi

r - 为特定 geom_node_text 绘制标签

转载 作者:行者123 更新时间:2023-12-01 23:24:59 36 4
gpt4 key购买 nike

我正在尝试绘制网络图并仅显示中心性分数高于特定阈值的 geom_node_text 的标签。我的代码如下:

rt_tbl %>% 
mutate(centrality = centrality_authority()) %>%
ggraph(layout = 'kk') +
geom_edge_link(aes(), colour = "gray", alpha = 0.5) +
geom_node_point(aes(size = centrality, colour = centrality)) +
geom_node_text(data=subset(centrality > 0.6), aes(centrality, label=name)) +
theme_graph(base_family = "Roboto Condensed", base_size = 13)

我遇到以下错误:
Error in subset(centrality > 100) : object 'centrality' not found

我的数据如下所示:
# A tbl_graph: 1589 nodes and 3992 edges
# A directed multigraph with 3 components
# Node Data: 1,589 x 3 (active)
name degree centrality
<chr> <dbl> <dbl>
1 Ashinlay1970 35 0.90053429
2 WinTunMin1 25 0.66408597
3 Yaminayeyaohn1 2 0.06080755
4 TUNOO00655880 3 0.07609831
5 inewagency 8 0.21569006
6 KSwe03 4 0.12416238
# ... with 1,583 more rows

# Edge Data: 3,992 x 2
from to
<int> <int>
1 1 48
2 1 49
3 1 1
# ... with 3,989 more rows

最佳答案

我以前从未使用过 ggraph,你真的应该提供一个可重现的最小示例,但试试这个:

rt_tbl %>% 
mutate(centrality = centrality_authority()) %>%
ggraph(layout = 'kk') +
geom_edge_link(aes(), colour = "gray", alpha = 0.5) +
geom_node_point(aes(size = centrality, colour = centrality)) +
geom_node_text(aes(label=ifelse(centrality > .6, name, NA))) +
theme_graph(base_family = "Roboto Condensed", base_size = 13)

您的 subset -approach 不起作用,因为它不会查看您的 rt_tbl 内部,而是尝试获取不存在的对象 centrality 。但无论如何它都不起作用,因为您需要为其提供一个与数据长度相同的向量,但子集仅返回与您的条件匹配的值。因此,使用 ifelse 更适合您的任务。

编辑:

顺便说一句,这是一个最小的可重复示例(至少我现在知道如何使用 ggraph ):
library(tidygraph)
library(ggraph)

rt_tble <- tidygraph::create_star(10) %>%
mutate(centrality = centrality_authority(),
name = LETTERS[1:10])

ggraph(graph = rt_tble) +
geom_edge_link() +
geom_node_point(aes(size = centrality, colour = centrality)) +
geom_node_text(aes(label = ifelse(centrality > .6, as.character(name), NA_character_)))

我不得不使用 as.character(name) 而不是 namelevels(name)(就像我以前所做的那样),也许您也必须在我上面的解决方案中更改它...

但关于这一点,请查看下面的@Alper Yilmaz 解决方案。

关于r - 为特定 geom_node_text 绘制标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47175541/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com