本內容為【科研私家菜】R可視化之美之科研繪圖系列課程
快來收藏關注【科研私家菜】
01 詞云圖
詞云圖( word cloud chart)是通過使每個字的大小與其出現(xiàn)頻率成正比侨把,顯示不同單詞在給定文本中的出現(xiàn)頻率,然后將所有的字詞排在一起航揉,形成云狀圖案惰爬,也可以任何格式排列:水平線、垂直列或其他形狀辜王,如圖3-9-1所示劈狐。其也可用于顯示獲分配元數(shù)據(jù)的單詞。在詞云圖上使用顏色通常都是毫無意義的呐馆,主要是為了美觀肥缔,但我們可以用顏色對單詞進行分類或顯示另一個數(shù)據(jù)變量。詞云圖通常用于網(wǎng)站或博客上汹来,以描述關鍵字或標簽使用续膳,也可用來比較兩個不同的文本改艇。
library(tm)
library(wordcloud)
Paper1<-paste(scan("Paper1.txt", what = character(0),sep = ""), collapse = " ") #讀入TXT 文檔1
Paper2<-paste(scan("Paper2.txt", what = character(0),sep = ""), collapse = " ") #讀入TXT 文檔2
tmpText<- data.frame(c(Paper1, Paper2),row.names=c("Text1","Text2"))
df_title <- data.frame(doc_id=row.names(tmpText),
text=tmpText$c.Paper1..Paper2.)
ds <- DataframeSource(df_title)
#創(chuàng)建一個數(shù)據(jù)框格式的數(shù)據(jù)源,首列是文檔id(doc_id),第二列是文檔內容
corp <- VCorpus(ds)
#加載文檔集中的文本并生成語料庫文件
corp<- tm_map(corp,removePunctuation) #清除語料庫內的標點符號
corp <- tm_map(corp,PlainTextDocument) #轉換為純文本
corp <- tm_map(corp,removeNumbers) #清除數(shù)字符號
corp <- tm_map(corp, function(x){removeWords(x,stopwords())}) #過濾停止詞庫
term.matrix <- TermDocumentMatrix(corp)
#利用TermDocumentMatrix()函數(shù)將處理后的語料庫進行斷字處理坟岔,生成詞頻權重矩陣
term.matrix <- as.matrix(term.matrix) #頻率
colnames(term.matrix) <- c("Paper1","paper2")
df<-data.frame(term.matrix)
write.csv(df,'term_matrix.csv') #導出兩篇文章的頻率分析結果
df<-read.csv('term_matrix.csv',header=TRUE,row.names=1)
#Colors<-colorRampPalette(rev(brewer.pal(9,'RdBu')))(length(df$Paper1>10))
wordcloud(row.names(df) , df$Paper1 , min.freq=10,col=brewer.pal(8, "Dark2"), rot.per=0.3 )
效果如下:
02 兩份數(shù)據(jù)的對比
comparison.cloud(df, max.words=300, random.order=FALSE, rot.per=.15, c(4,0.4), title.size=1.4)
comparison.cloud(df,max.words=300,random.order=FALSE,colors=c("#00B2FF", "red"))
commonality.cloud(df,max.words=100,random.order=FALSE,color="#E7298A")
# comparison cloud
comparison.cloud(df, random.order=FALSE,
colors = c("#00B2FF", "red", "#FF0099", "#6600CC"),
title.size=1.5, max.words=500)
效果如下:
注意事項:
詞云圖雖然簡單易懂,但有著一些缺點:
(1)較長的字詞會更引人注意;
( 2)字母含有很多升部/降部的單詞可能會更受人關注;
(3)分析精度不足谒兄,主要是為了美觀。
參考資料
《R語言數(shù)據(jù)可視化之美》
關注R小鹽社付,關注科研私家菜(溦?工眾號: SciPrivate)承疲,有問題請聯(lián)系R小鹽。讓我們一起來學習 R可視化之美之科研繪圖