網絡圖在文獻計量學領域應用比較廣泛,比如我們想看哪些詞語在同一個文檔中出現,這說明這兩個詞語可能有一定的關聯性。使用自帶數據進行網絡圖的繪製。
1.首先進行準備數據和清洗數據,成為了兩列帶有標籤和對應詞語的tibble# 加載需要的包library(tidyverse)library(akc)library(tidytext)library(widyr)library(ggraph)library(igraph)# 準備數據data <- bibli_data_table%>% # 選擇id和keyword列 select(id,keyword)%>% # 數據的整理 unnest_tokens(output = keyword, input = keyword, token = strsplit, split=";")data
2.接下來對上述整理好的文本進行匯總,拿第一行來說,關鍵詞austerity和community capacity共同出現的頻次為1# 通過widyr包的pairwise_count函數# 進行同一個文檔的所有關鍵詞進行匯總total_data <- data%>%pairwise_count(keyword,id,upper=FALSE)
3.接下來就是對這些數據進行網絡的構建,也就是使用igraph包的graph_from_data_frame()函數將數據框轉化為圖結構
# 對上述信息進行網絡構建network <- total_data%>% # directed = FALSE表明無方向 graph_from_data_frame(directed = FALSE)%>% as_tbl_graph()
4.最後就是進行網絡的可視化,由於數據較多,所以只能截取一部分來進行繪圖。引入degree的概念,也就是如果一個節點和n個節點相連,他的度就是n。# 網絡的可視化vis_network <- network%>% mutate(degree = centrality_degree())
vis_network%>% arrange(-degree)%>% slice(1:50)%>% ggraph(layout = "fr")+ geom_edge_link(aes(edge_alpha = n),show.legend = FALSE)+ geom_node_point(aes(color=name,size = degree))+ geom_node_text(aes(label = name),repel = TRUE)+ theme_void()+ theme(legend.position = "none")
6.怎麼樣,還行嗎?