最近一直在看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是該包自帶的資料集

R學習整理筆記(四)——用wordcloud2包生成文字雲

依葫蘆畫瓢照抄,在自己電腦上跑出的圖片還是很開心的

切入正題,wordcloud2的相關語法

R學習整理筆記(四)——用wordcloud2包生成文字雲

看到這一長串,抗拒心理油然而生

幫助文件有詳細的usage和arguments,但是看中文總比看英文輕鬆,就直接借用中文引數介紹了:

R學習整理筆記(四)——用wordcloud2包生成文字雲

大致看下來,wordcloud2語法並不複雜,但想要畫出一幅頗具美感的文字雲,還是得花很多心思的,在配色、字型、形狀等各方面都要摳細節。

自定義圖片形狀

除了包自帶的形狀,還可以選取自己想要的圖片做文字雲的形狀。自定義形狀的時候,最好選用白背景的圖,這樣生成的形狀也乾淨許多。

我找了張平底鍋pan的圖片(pan。jpg),把它放在R安裝檔案裡(圖片t是包自帶的),如圖:

R學習整理筆記(四)——用wordcloud2包生成文字雲

我還蠻困惑,是否一定要把圖片放在這個文件才可以呼叫,但是先這麼模仿操作吧

然後上程式碼:

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了!苦苦探索後,看到成功的這一瞬間好激動!!!

R學習整理筆記(四)——用wordcloud2包生成文字雲

雖然最終就這麼幾句程式碼,但過程真不容易,平底鍋要做封面!

上面探索了自定義圖片,接下來探索wordcloud2中另外一個好用的函式

letterCloud()。

文字雲詞圖letterCloud()

說白了,就是直接拿文字作為雲詞圖的圖案形狀。先試一下:

letterCloud(demoFreqC, word =“雲”,wordSize = 2, color = ‘random-dark’)

R學習整理筆記(四)——用wordcloud2包生成文字雲

這裡呼叫的是包自帶的中文單詞資料集demoFreqC

letterCloud(demoFreq, word =“wind”,wordSize = 2, color = ‘random-dark’)

R學習整理筆記(四)——用wordcloud2包生成文字雲

上面練的案例都是直接拿wordcloud2包自帶的demoFreq和demoFreqC資料集,接下來就可以使用自己的資料集,設計想要的圖案。我編了個csv表,表中是目前我所在工作部門的相關詞條,寫了62條,截幾條:

R學習整理筆記(四)——用wordcloud2包生成文字雲

這個表放在電腦桌面上,文件名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。。。

R學習整理筆記(四)——用wordcloud2包生成文字雲

撤了撤了,打卡回家吃飯~