iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 14
0

先準備資料先
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)

https://ithelp.ithome.com.tw/upload/images/20171217/20107033AyPJRekNEk.png

文字雲

  • 文字雲1:wordcloud
##文字雲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")
)

https://ithelp.ithome.com.tw/upload/images/20171217/201070337cvIM6aVlz.png

min.freq 將決定文字多寡
scale 調整畫面可容納字數的多寡 字越小 可容納就越多
前述參數請自行調整
出現Error in plot.new() : figure margins too large 請重置margins par(mar=c(1,1,1,1))

  • 文字雲2:wordcloud2
install.packages("wordcloud2")
library(wordcloud2)

wordcloud2(segC_top50)
wordcloud2(segC_top50,shape = 'triangle',backgroundColor='yellow',size = 0.2)

https://ithelp.ithome.com.tw/upload/images/20171217/20107033X0yKprhhbl.png
給背景色 外型指定
https://ithelp.ithome.com.tw/upload/images/20171217/2010703396pHnRmBgp.png

  • 文字雲3:letterCloud
    還有更讚的!
    用letterCloud函數,可直接將資料排成字母
letterCloud(segC_top50,'R',size = 0.35)
letterCloud(segC_top50,'OK',size = 0.25)

文字尺寸儘量小比較容易表現
https://ithelp.ithome.com.tw/upload/images/20171217/20107033j4mkVn29iS.png
兩個字也沒問題
https://ithelp.ithome.com.tw/upload/images/20171217/201070337sXr2n0X3S.png


上一篇
(Day13)取出有幫助的分詞資料
下一篇
(Day15)tidyverse-用來處理資料匯入的readr package
系列文
職場老鳥的資料科學初體驗-R語言專案實作紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言