R學習整理筆記(四)——用wordcloud2包生成文字雲
最近一直在看R的繪圖功能,從【
第3章 圖形初階】
到【
第6章 基本圖形】
再到【
第19章 使用ggplot2進行高階繪圖】
。基本語法概念過完了,不過圖形還是得多畫畫才能熟練。枯燥之餘,想玩一下書上沒提到的文字雲功能。
杜雨
寫的R語言資訊視覺化——文字雲是篇挺好的教程,另外Little_Rookie的R語言︱文字挖掘——詞雲wordcloud2包寫的更詳細。我也主要參考他們的思路。
用到的工具包:wordcloud2(wordcloud的升級版)。呼叫方式按常規方法:
install。packages(“wordcloud2”)
library(wordcloud2)
學習各類乾枯枯的語法之前,迫不及待想先看下效果:
wordcloud2(demoFreq, size = 1, fontFamily = “
微軟雅黑
”,
color = “random-light”, backgroundColor = “grey”) #demoFreq是該包自帶的資料集
依葫蘆畫瓢照抄,在自己電腦上跑出的圖片還是很開心的
切入正題,wordcloud2的相關語法
看到這一長串,抗拒心理油然而生
幫助文件有詳細的usage和arguments,但是看中文總比看英文輕鬆,就直接借用中文引數介紹了:
大致看下來,wordcloud2語法並不複雜,但想要畫出一幅頗具美感的文字雲,還是得花很多心思的,在配色、字型、形狀等各方面都要摳細節。
自定義圖片形狀
除了包自帶的形狀,還可以選取自己想要的圖片做文字雲的形狀。自定義形狀的時候,最好選用白背景的圖,這樣生成的形狀也乾淨許多。
我找了張平底鍋pan的圖片(pan。jpg),把它放在R安裝檔案裡(圖片t是包自帶的),如圖:
我還蠻困惑,是否一定要把圖片放在這個文件才可以呼叫,但是先這麼模仿操作吧
然後上程式碼:
pan <-system。file(“examples/pan。jpg”,package = “wordcloud2”) #要使用的圖片路徑
wordcloud2(demoFreq, figPath =pan, size = 1,
color = “random-light”,backgroundColor = “grey”) #figPath呼叫圖片
本以為會穩當當的出現想要的結果。
然額!bug還是不可避免的出現了。竟然顯示出這個!
#FormatImgID_9##FormatImgID_10#怎麼是口赤裸裸的鍋!!!
好了,又是各種搜帖找解決辦法……半天又這麼消磨過去了,終於,找到了。。。
參考Rstudio使用wordcloud2製作詞雲時自定義圖片不顯示?給出的解答:問題出在wordcloud2包的安裝方式上,利用package安裝,會出現這個問題。解決辦法:透過github官方安裝devtools::install_github(“lchiffon/wordcloud2”),具體執行程式碼就是:
install。packages(‘devtools’)
devtools::install_github(“lchiffon/wordcloud2”)
以上程式碼相當於重新安裝了wordcloud2包,接下來要再執行下library語句:
library(wordcloud2)
然後,由於包重新安裝,還要記得把平底的圖片重新放進R的安裝文件裡(wordcloud2/examples下面)。接下來,再執行:
pan <-system。file(“examples/pan。jpg”,package = “wordcloud2”)
wordcloud2(demoFreq, figPath =pan, size = 1,
color = “random-light”,backgroundColor = “grey”)
哈哈~總算OK了!苦苦探索後,看到成功的這一瞬間好激動!!!
雖然最終就這麼幾句程式碼,但過程真不容易,平底鍋要做封面!
上面探索了自定義圖片,接下來探索wordcloud2中另外一個好用的函式
letterCloud()。
文字雲詞圖letterCloud()
說白了,就是直接拿文字作為雲詞圖的圖案形狀。先試一下:
letterCloud(demoFreqC, word =“雲”,wordSize = 2, color = ‘random-dark’)
這裡呼叫的是包自帶的中文單詞資料集demoFreqC
letterCloud(demoFreq, word =“wind”,wordSize = 2, color = ‘random-dark’)
上面練的案例都是直接拿wordcloud2包自帶的demoFreq和demoFreqC資料集,接下來就可以使用自己的資料集,設計想要的圖案。我編了個csv表,表中是目前我所在工作部門的相關詞條,寫了62條,截幾條:
這個表放在電腦桌面上,文件名erbu。csv。
erbu <- read。csv(“C:/Users/hp/Desktop/erbu。csv”) #讀取資料
wordcloud2(erbu, size = 1, fontFamily = “微軟雅黑”,
color = “random-light”,shape=“circle”,
backgroundColor = “grey”) #畫文字雲
執行以後,就可以看到成果了。嘻嘻嘻,我機靈的把領導名字的詞條
頻數
設成最大,讓他的大名最顯眼,然後把圖發給他,哈哈!get討好領導的創意小技能了~本想貼下圖,想想還有好多同事名字啥的,就不po了,免得被他們guai zui。。。
撤了撤了,打卡回家吃飯~