首發(fā)于“生信補給站” https://mp.weixin.qq.com/s/U8yzX-BYQ6wdZObkBz8ecw
全世界所有的語言都有表達愛意的方式,R語言當然也有缎谷!
特殊的日子井濒,需要一個特殊的數(shù)據(jù)集!ggwordcloud內(nèi)置數(shù)據(jù)集包含全世界147種愛你的語言列林,用R送給TA一份遠程的愛瑞你。
一 氛圍 道具
準備好R的環(huán)境,和“愛”的數(shù)據(jù)集
#install.packages("ggwordcloud")
library(ggwordcloud)
data("love_words")
head("love_words")
# A tibble: 6 x 4
lang word native_speakers speakers
<chr> <chr> <dbl> <dbl>
1 zh 愛 1200 1200
2 en Love 400 800
3 es Amor 480 555
4 ar ?? 245 515
5 hi ????? 322 442
6 fr Amour 76.8 351.
嗯希痴,我也只能看懂2種者甲,但知道都是表達愛的就可以了!
二 初始“印象”
geom_text_wordcloud 看一下世界范圍內(nèi)的不同國家說“愛”的人數(shù)
#AI的大小由speakers的人數(shù)決定
ggplot(love_words, aes(label = word, size = speakers)) +
geom_text_wordcloud() +
scale_size_area(max_size = 40)
三 “鉆石”和“心”
1 )將愛變成鉆石的形狀
#鉆石形狀
love_words <- love_words %>%
mutate(angle = 90 * sample(c(0, 1), n(), replace = TRUE, prob = c(60, 40)))
ggplot(love_words, aes(label = word, size = speakers)) +
geom_text_wordcloud_area(shape = "diamond") +
scale_size_area(max_size = 40)
2 )自定義愛心的形狀
ggplot(love_words,aes(label = word, size = speakers,
color = speakers, angle = angle)) +
geom_text_wordcloud_area(
mask = png::readPNG(system.file("extdata/hearth.png",
package = "ggwordcloud", mustWork = TRUE
)),
rm_outside = TRUE
) +
scale_size_area(max_size = 40) +
scale_color_gradient(low = "darkred", high = "red")
四 “密碼” VS “對話”
既然是ggplot2的擴展包润梯,那么就可以做很多事情过牙。
1)更改label,變成“密碼”纺铭,寇钉,,
set.seed(42)
ggplot(love_words_small, aes(label = word, size = speakers,
label_content = sprintf("%s<span style='font-size:7.5pt'>(%g)</span>", word, speakers))) +
geom_text_wordcloud_area() +
scale_size_area(max_size = 40) +
theme_minimal()
label_content
的功能扫倡,本來想著新增一列,把想說的話隨機打亂加在新列中,然后label_content展示這些“密碼”撵溃。
2)對話
統(tǒng)計微信或者QQ中的對話詞頻疚鲤,標記出誰說的,然后分頁展示
library(dplyr)
library(tidyr)
love_words$MW <- sample(c("M","W"),size=147,replace=T)
ggplot(love_words,aes(label = word, size = speakers,
color = speakers)) +
geom_text_wordcloud_area(
mask = png::readPNG(system.file("extdata/hearth.png",
package = "ggwordcloud", mustWork = TRUE
)),
rm_outside = TRUE
) +
scale_size_area(max_size = 40) +
scale_color_gradient(low = "darkred", high = "red")+
facet_wrap(~MW) + theme_minimal()
參考資料:
https://lepennec.github.io/ggwordcloud/articles/ggwordcloud.html
好了缘挑,自由發(fā)揮去吧集歇!
◆ ◆ ◆ ◆ ◆
精心整理(含圖版)|你要的全拿走!有備無患 (R統(tǒng)計语淘,ggplot2繪圖诲宇,生信圖形可視化匯總)