gpt4 book ai didi

r - ggraph - 根据频率增加节点大小

转载 作者:行者123 更新时间:2023-12-01 22:02:43 24 4
gpt4 key购买 nike

正在阅读 Julia Silge 和 David Robinson 的 Tidytext Mining with R - https://www.tidytextmining.com/nasa.html - 并难以理解如何根据频率 (n) 调整节点大小。尝试了以下代码...

 library(widyr)
set.seed(1234)
title_word_pairs %>%
filter(n >= 250) %>%
graph_from_data_frame() %>%
ggraph(layout = "fr") +
geom_edge_link(aes(edge_alpha = n, edge_width = n), edge_colour =
"royalblue") +
geom_node_point(aes(size = n)) + scale_size(range = c(2,10)) +
geom_node_text(aes(label = name), repel = TRUE,
point.padding = unit(0.2, "lines")) +
theme_void()

...并收到此错误...

 Error: Column `size` must be a 1d atomic vector or a list
Call `rlang::last_error()` to see a backtrace

如有任何想法或想法,我们将不胜感激。

最佳答案

问题是这个频率 n 是针对,而不是顶点。所以 geom_edge_link 找到了 n 因为 n 是边属性,而 geom_node_point 没有找到 n 因为它不在顶点属性中。

那么我们希望构造另一个实际上是顶点频率的变量。

subt <- title_word_pairs %>%
filter(n >= 250)
vert <- subt %>% gather(item, word, item1, item2) %>%
group_by(word) %>% summarise(n = sum(n))

subt %>%
graph_from_data_frame(vertices = vert) %>%
ggraph(layout = "fr") +
geom_edge_link(aes(edge_alpha = n, edge_width = n), edge_colour = "royalblue") +
geom_node_point(aes(size = n)) + scale_size(range = c(2,10)) +
geom_node_text(aes(label = name), repel = TRUE, point.padding = unit(0.2, "lines")) +
theme_void()

这里的subt和之前一样,那么vert包含两列:顶点(词)及其在subt中的频率作为总和或相关的边缘频率。最后,我添加了 vertices = vert 来传递这个顶点属性。

关于r - ggraph - 根据频率增加节点大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53219303/

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