先準備資料先
segA:直接seqment(注意:都是table 注意轉型別)
segB_top50:僅取斷詞結果一個字以上的詞的前五十個詞
segC_top50:同上 方式小小不同
seg<-mixseg[as.character(dfl$title)]
segA<-data.frame(table(seg))
segB<-seg[nchar(seg)>1]#table
segB_top50<-sort(table(segB),decreasing = TRUE)[1:50]#table
segB_top50=as.data.frame(segB_top50)#table->data.frame
segC<-data.frame(table(seg[nchar(seg)>1]))#data.frame
segC_top50<-head(segC[order(segC$Freq,decreasing = TRUE),],50)
##文字雲1
install.packages("wordcloud")
library(wordcloud)
par(family=("Heiti TC Light"))
wordcloud(
words = segC_top50[,1], # 或segC_top50$Var1
freq = segC_top50$Freq,
scale = c(2,.1), # 給定文字尺寸的區間(向量)
random.order = FALSE,# 關閉文字隨機顯示 按順序
ordered.colors = FALSE,#關閉配色順序
rot.per = FALSE,#關閉文字轉角度
min.freq = 7,# 定義最小freq數字
colors = brewer.pal(8,"Dark2")
)
min.freq 將決定文字多寡
scale 調整畫面可容納字數的多寡 字越小 可容納就越多
前述參數請自行調整
出現Error in plot.new() : figure margins too large 請重置margins par(mar=c(1,1,1,1))
install.packages("wordcloud2")
library(wordcloud2)
wordcloud2(segC_top50)
wordcloud2(segC_top50,shape = 'triangle',backgroundColor='yellow',size = 0.2)
給背景色 外型指定
letterCloud(segC_top50,'R',size = 0.35)
letterCloud(segC_top50,'OK',size = 0.25)
文字尺寸儘量小比較容易表現
兩個字也沒問題