R語言信息可視化——文字雲

2021-03-06 數據小魔方

這一篇跟大家分享R語言信息可視化——文字雲。

R語言可以輕鬆處理信息可視化,並且很早就有專用的信息可視化包——WordCloud。

可是這個第一版的文字雲工具,真的超級爛,不僅參數多,而且呈現效果爛,無法自定義形狀,顏色也不好搭配。

今天的主角是WordCloud2,該包的升級版(雖然我不知道這兩個包是否是同一個作者開發的)。

R語言配置環境:

R x64 3.31/Rstudio 0.99.903/wordcloud2 0.2.0

加載字符雲包:

library(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』(五邊形);

導入數據:

Data<-read.csv("F:\\數據可視化\\數據分析\\R\\R語言學習筆記\\文字雲\\DemoFreq.csv")

數據是我在以前文章中曾經分享過的關於文字雲在線製作工具所用到的。


作圖語法:

eg1:  wordcloud2(Data, size = 1,shape = 'star') #最簡單的依據,定義好數據集,文字大小,形狀。


而且該包所生成的文字雲頁面是支持滑鼠懸浮顯示動態標籤的。(滑鼠停留在對應文字上,會顯示出該文字對應的權重)。


eg2: wordcloud2(Data , size = 2, fontFamily = "微軟雅黑",color = "random-light", backgroundColor = "grey")


eg3: wordcloud2(Data, size = 2, minRotation = -pi/2, maxRotation = -pi/2)  


eg4: wordcloud2(Data, size = 2, fontFamily = "微軟雅黑",minRotation = -pi/6, maxRotation = -pi/6,rotateRatio = 1)


由於自己的數據集數量太少,完全展示不出來該包文字雲的可視化效果精妙之處,以下將使用該包自帶的案例數據集進行演示。

wordcloud2(demoFreq, size = 2, fontFamily = "微軟雅黑",  

           color = "random-light", backgroundColor = "grey")


wordcloud2(demoFreq, size = 2, fontFamily = "微軟雅黑",minRotation = -pi/6, maxRotation = -pi/6,rotateRatio = 1)

wordcloud2(demoFreq, size = 2, shape = 'star',fontFamily = "微軟雅黑",  color = "random-light", backgroundColor = "grey")

以上僅僅使用內置的形狀或者默認形狀做出的文字雲,其實該包還支持自定義圖片形狀或者自定義文字形狀。

圖片形狀:

下載一張PNG或者JPEG格式的白色背景圖片(最好背景是白色的)。

將該圖片放在你的R語言安裝文件裡的WordCloud2的案例圖片包中並命名(內有一張黑色背景推特logo圖片)。


Emotion <-system.file("examples/Panda.png",package = "wordcloud2")  #調用圖片路徑

wordcloud2(demoFreq, figPath = Emotion, size = 1,color = "random-light")  #使用默認案例數據集並結合阿寶的圖片呈現文字雲效果


艾瑪,這個跟阿寶真的不是很像呀,這軟體,真坑。

那就再試一試人家軟體自帶的推特logo文字雲圖的效果吧。

Emotion <-system.file("examples/t.png",package = "wordcloud2")  

wordcloud2(demoFreq, figPath = Emotion, size = 1,color = "random-light") 


這個倒還跟小鳥有點像。

文字形狀:

這裡所謂的文字性狀其實是設定一個字符作為整體形狀同時將數據集中的文字以加權的形式映射到定義好的文字形狀中。

letterCloud(demoFreq, word = "LOVE", wordSize = 2,color = 'random-dark',backgroundColor = "snow") 


letterCloud(demoFreq, word = "中秋", wordSize = 2,color = 'random-dark',backgroundColor = "snow") 


好了,關於這個包就演示到這裡,感興趣的童鞋可以自己研究研究。

魔方學院QQ群:

QQ群:

微信群:

相關焦點

  • R語言天氣可視化應用
    可視化程序,讀入天氣數據及地圖數據,生成靜態的圖片作為可視化輸出。最終用戶通過新浪微博,加載Web應用,看到了可視化生成的靜態圖片。最終用戶通過新浪微博分享了這個應用,讓更多的人看到這個應用。下面按照語言的優勢,把應用架構以語言的特性來劃分,讓R語言實現爬蟲、處理數據和可視化,讓PHP完成Web開發、新浪API接入和用戶交互。
  • Power BI 標籤雲可視化
    網易雲課堂幫我提取出了所有課程的評價信息,那麼我們可以做一個文本分析,用標籤雲的方式進行可視化,看看各位學員們都是如何評價我們課程的。
  • R語言,一行代碼實現高大上的「高考文字雲」(附完整教程)
    每年的高考都會產生很多的爆點,引起很多的話題,今年也不例外,而且再創新高,誕生了高考界的第一網紅:正好,R的文字雲包「wordcloud2」也發布了,於是浩彬老撕也弄了一個高考文字雲。此次用到的包為「wordcloud2」,github上,,因為我們需要先安裝「devtools」,再安裝「wordcloud2」,代碼如下:install.packages('devtools')devtools::install_github("lchiffon/wordcloud2")3實現過程:(1)高考文字雲
  • R語言學習筆記之相關性矩陣分析及其可視化
    rcorr(x, type = c(「pearson」,「spearman」))。library(Hmisc)#加載包res2 <- rcorr(as.matrix(mydata))res2#可以用res2$r、res2$P來提取相關係數以及顯著性p-valueres2$r
  • 技術貼 | R語言:組學關聯分析和pheatmap可視化
    舉例展示R語言組學關聯分析的方法。宏基因組數據以KO-樣品豐度表為例。代謝組數據以metabolite-樣品豐度表為例。基本方法是用R語言psych包corr.test函數進行兩組數據的相關分析,結果經格式化後用pheatmap可視化得熱圖。一、模擬輸入 1.
  • Day7:R語言課程 (R語言進行數據可視化)
    使用R base包提供的函數'mean()':mean(rpkm_ordered[,"sample1"])只想要其中一個樣本(數據框中的1列)的平均值,可以這樣實現,但要從所有12個樣本中獲取此信息該如何實現?程式語言通常有辦法允許多次執行代碼,或者在「循環」中執行。
  • R語言可視化學習筆記之ggridges包
    作者:嚴濤 浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農,R語言愛好者,愛開源。
  • R語言可視化之UpSetR包
    UpsetR繪製集合可視化圖形使用函數upset()。utils datasets methods base#### other attached packages:## [1] UpSetR_1.3.3#### loaded via a namespace (and not attached):## [1] Rcpp_0.12.13 knitr_1.17 magrittr_1.5 munsell_0.4.3## [5] colorspace_1.3-2 rlang
  • R數據可視化|圖形初階(上)
    在生物信息學中常常會用到R語言來繪製圖形以實現數據可視化,本專題主要記錄我的R語言學習筆記及一些圖形的繪製。 本文主要通過plot(   )高級繪圖函數來介紹R語言繪圖的基礎知識。>#表示生成一副6英寸寬,6英寸高,上下邊界為1.8英寸,左邊界為1.8英寸,右邊界為1英寸的圖形 par(lwd=2,cex=1.5)   #lwd=指定線條寬度,默認為1,lwd=2表示生成一條寬度為默認線條2倍的線條,cex=表示pch=符號的大小,默認大小為1 par(cex.axis=.75,font.axis=3)  #cex.axis=表示坐標軸刻度文字的縮放倍數
  • 數據可視化之R語言
    分類數據的可視化使用條形圖、點圖、柱形圖、脊柱圖、馬賽克圖、餅圖及四折圖連續數據的可視化使用箱線圖、直方圖、散點圖及其變種、帕累託圖==============================================一、分類數據的可視化
  • 【Python教程】生成文字雲
    文字雲 (tag cloud) 是一種關鍵詞的視覺化表現方式,它常常被用來匯總描述一篇文章中多次出現的文字信息。
  • 免費公開課|1小時教你用R 語言完成漂亮的數據可視化
    大數據像是『黑盒子』一樣的新世界,現在我們用數據挖掘來探索這個世界的規則和信息,但是沒有問題導向的數據挖掘需要花費大量的時間來探索。與文字相比,圖片能高效直接地幫助我們快速識別信息。數據可視化不僅僅是為了展示數據,而是通過圖像來增加人思考的時間和質量,加大概率發現隱藏在數據背後的未知。那麼,如何將數據有效轉化為高質量的數據圖呢?
  • 【語言班】R語言數據分析與可視化高級研修班(4.26-29)
    R語言是用於數據分析、數據可視化的高級程式語言,其功能包括:數據存儲和處理、科學計算工具;能夠進行幾乎所有的統計分析;內置豐富便捷的數據可視化功能
  • R語言與Tableau集成之可視化應用
    作者 | CDA數據分析師Tableau是一款非常棒的數據可視化商業軟體,通過拖拉拽的方式迅速地實現數據可視化。而且該軟體可以連接任何一種資料庫,在處理大型數據時一點都不遜色。缺點是其無法從事數據分析和挖掘工作,幸運的是,從Tableau的8.0開始,Tableau與R語言打通,可以在Tableau中運行R腳本,從而將R語言的分析或挖掘結果在Tableau中展示。如何實現Tableau和R語言的聯手繪製可視化圖表呢?
  • 信息可視化圖表設計指南!
    數據可視化教學班3999元勁爆2.5折,現價998元!!!課程連結見文末閱讀原文作者:cherries 出處:ued.baidu信息可視化包括了信息圖形、知識、科學、數據等的可視化表現形式,以及視覺可視化設計方面的進步與發展。
  • 推薦|R語言相關電子書,美輪美奐的數據可視化,再也不怕被嫌棄了
    工作之餘翻開看看,近距離帶你感受R的魅力,數據可視化,畫出各種高質量的圖,你也可以,再也不怕被導師和審稿人嫌棄遼那這數據可視化,可視化,這究竟在說啥?數據可視化是關於數據視覺表現形式的研究;其中,這種數據的視覺表現形式被定義為一種以某種概要形式抽提出來的信息,包括相應信息單位的各種屬性和變量。
  • R語言可視化學習筆記之ggridges包繪製山巒圖
    作者:嚴濤 浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農,R語言愛好者,愛開源。
  • R語言聚類分析及可視化展示
    Kmeans算法是一種非常常見的聚類算法,基本思想非常簡單,這裡只介紹聚類算法在R語言下的實現過程及可視化展現結果。1.模擬數據聚類Kmeans算法需要求解各變量的均值,因此它要求輸入的數據集必須為連續的書之行數據。在R語言中,只需要利用stats包中的kmeans函數就能實現kmeans聚類方法。
  • R語言可視化學習筆記之添加p-value和顯著性標記
    taoyan:偽碼農,R語言愛好者,愛開源
  • 用R軟體製作具有科技感的頭像「文字雲」(「詞雲」)
    前段時間時不時在哪裡可以看到各種「文字雲」的圖片,看起來很高大上,而且還有人將背景設計成自己的登記照,然後就可以得出背景為自己登記照的文字雲。