Je suis intéressé par l'utilisation d'un diagramme de réseau de cooccurrence similaire à celui affiché sur section 8.2.2 Tidy Text mining book de David Robinson et Julia Silge, tels que ce tableau, sauf que je voudrais avoir la taille des noeuds changent en fonction du nombre de fois le terme apparaît dans les données: Ajout de la taille du nombre de mots en tant que calque à la taille du noeud sur un graphique de cooccurrence en utilisant tidytext
le tableau ci-dessus a été établi avec le code suivant:
library(tidytext)
library(tidyverse)
library(widyr)
library(igraph)
library(ggraph)
library(jsonlite)
metadata <- fromJSON("https://data.nasa.gov/data.json")
nasa_keyword <- data_frame(id = metadata$dataset$`_id`$`$oid`,
keyword = metadata$dataset$keyword) %>%
unnest(keyword)
keyword_cors <- nasa_keyword %>%
group_by(keyword) %>%
filter(n() >= 50) %>%
pairwise_cor(keyword, id, sort = TRUE, upper = FALSE)
set.seed(1234)
keyword_cors %>%
filter(correlation > .6) %>%
graph_from_data_frame() %>%
ggraph(layout = "fr") +
geom_edge_link(aes(edge_alpha = correlation, edge_width = correlation), edge_colour = "royalblue") +
geom_node_point(size = 5) +
geom_node_text(aes(label = name), repel = TRUE,
point.padding = unit(0.2, "lines")) +
theme_void()
J'ai joué avec geom_node_point(aes(size = ??))
mais je n'arrive pas à comprendre comment configurez le code pour le faire. Une partie du problème à moi est que la fonction graph_from_data_frame()
transforme la trame de données en un objet regardant assez complexe.