R語言,一行代碼實現高大上的“高考文字雲”(附完整教程)


一年一度的高考大日子又到了,

在這里,浩彬老撕先預祝各位考生都能取得滿意的成績。

每年的高考都會產生很多的爆點,引起很多的話題,

今年也不例外,而且再創新高,誕生了高考界的第一網紅


正好,R的文字雲包“wordcloud2”也發布了,於是浩彬老撕也弄了一個高考文字雲。

你說要圖案選擇?咱有!支持中文,那是必須的!多少代碼?一行足矣!


Excuse me?! 

就這么簡單?

就是這么簡單!


如下是完整實現教程:

  1. 數據

數據要求非常簡單,只需要兩列分別是:詞語,頻率

WordFreq
高考100
滿分33
作文39
頭發42
網紅44

詳細數據可以通過如下鏈接下載:

鏈接: http://pan.baidu.com/s/1jI4gEnc 密碼: uids

2.環境要求:

(1)https://cran.r-project.org/上下載對應系統及版本的R軟件(版本要求至少3.1.0),環境為win64的R;

(2)此次用到的包為“wordcloud2”,github上,,因為我們需要先安裝“devtools”,再安裝“wordcloud2”,代碼如下:

install.packages('devtools')

devtools::install_github("lchiffon/wordcloud2")

3實現過程:

(1)高考文字雲

data <- read.csv('c:/data.csv', sep="," ,header = T)

#讀取原始數據

data

#檢查數據,查看是否存在亂碼的情況

wordcloud2(data, size = 1, shape='star',color = 'random-dark',

backgroundColor = "white",fontFamily = "微軟雅黑")

#繪制文字雲,其中data就是我們讀取的數據,size是對應文字大小,shape是繪制形狀


就是這么簡單就實現了!

另外,wordcloud2包里面打包了兩份數據,分別為:

英文的:demoFreq

中文的:demoFreqC


(2)英文Demo:

我們利用Sample數據,繪制一個心形圖

wordcloud2(demoFreq, size = 1,color = 'random-light',

shape = 'cardioid',backgroundColor = "snow")


在這里例子里面,我們修改了字體顏色,並把圖案形狀為心型,最后加上背景顏色。

是不是有種很溫馨的感覺,簡直是可視化必備利器!

(3)中文Demo

wordcloud2(demoFreqC, size = 1,color = 'random-light',

backgroundColor = "gray", fontWeight='bold',fontFamily = "微軟雅黑",

minRotation = -pi/3, maxRotation = pi/3,rotateRatio = 0.8)


在上面例子,我們重新設定了字體為粗體,字體旋轉角度在正負60度之間,旋轉比例為80%。

4.wordcloud2函數說明

wordcloud2(data, size = 1, minSize = 0, gridSize =  0,

    fontFamily = NULL, fontWeight = 'normal',

    color = 'random-dark', backgroundColor = "white",

    minRotation = -pi/4, maxRotation = pi/4, rotateRatio = 0.4,

    shape = 'circle', ellipticity = 0.65, widgetsize = NULL)

常用參數:

(1)data:詞雲生成數據,包含具體詞語以及頻率;

(2)size:字體大小,默認為1,一般來說該值越小,生成的形狀輪廓越明顯;

(3)fontFamily:字體,如‘微軟雅黑’;

(4)fontWeight:字體粗細,包含‘normal’,‘bold’以及‘600’;;

(5)color:字體顏色,可以選擇‘random-dark’以及‘random-light’,其實就是顏色色系;

(6)backgroundColor:背景顏色,支持R語言中的常用顏色,如‘gray’,‘blcak’,但是還支持不了更加具體的顏色選擇,如‘gray20’;

(7)minRontatin與maxRontatin:字體旋轉角度范圍的最小值以及最大值,選定后,字體會在該范圍內隨機旋轉;

(8)rotationRation:字體旋轉比例,如設定為1,則全部詞語都會發生旋轉;

(9)shape:詞雲形狀選擇,默認是‘circle’,即圓形。還可以選擇‘cardioid’(蘋果形或心形),‘star’(星形),‘diamond’(鑽石),‘triangle-forward’(三角形),‘triangle’(三角形),‘pentagon’(五邊形);

這里特別鳴謝wordcolud2的R包作者:郎大為Chiffon


原文地址:https://ask.hellobi.com/blog/wetalkdata/4092


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com