2-14 |“特殊”的日子,多学一种表达爱的方式

简介: 2-14 |“特殊”的日子,多学一种表达爱的方式

本文首发于“生信补给站”公众号  https://mp.weixin.qq.com/s/U8yzX-BYQ6wdZObkBz8ecw


全世界所有的语言都有表达爱意的方式,R语言当然也有!

特殊的日子,需要一个特殊的数据集!ggwordcloud内置数据集包含全世界147种爱你的语言,用R送给TA一份远程的爱。

一 道具 氛围

准备好R的环境,和“爱”的数据集

#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 看一下世界范围内的不同国家说“爱”的人数

#AI的大小由speakers的人数决定
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 )自定义爱心的形状

设置字形的角度

love_words <-love_words %>%
mutate(angle = 45 *sample(-2:2, n(), replace = TRUE, prob = c(1, 1, 4, 1, 1)))

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 ,变成“密码”

#更改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)“对话”

统计微信或者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


好了,自由发挥去吧!

目录
打赏
0
0
0
0
21
分享
相关文章
【博士每天一篇论文-实验分析】Toroidal topology of population activity in grid cells
本文通过同时记录多个网格细胞并应用拓扑数据分析,揭示了这些细胞网络的环面拓扑结构,表明存在一个二维连续吸引子网络,为理解空间编码和网格细胞在导航记忆中的作用提供了新视角。
98 3
纵览2024年:排名靠前的项目管理软件一览!
2024年上半年项目管理软件排名揭晓,领头羊包括Zoho Projects、Microsoft Project、Nifty、Smartsheet和ClickUp。Zoho Projects因其易用性、扩展性和定制灵活性备受推崇,适合中小企业和大型企业。Microsoft Project以其与微软生态的无缝集成和丰富功能吸引用户。Nifty以其协作工具和弹性定价受青睐,适合中小团队。Smartsheet以其电子表格式界面和全面功能脱颖而出,而ClickUp则以高度自定义和协作功能闻名,适合需要全面任务管理的团队。
144 2
纵览2024年:排名靠前的项目管理软件一览!
Lua在Windows下的配置、安装、运行
Windows下安装、运行Lua! 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) 1↓ 进入Lua官网:http://www.
1854 0
高并发系统三大利器之缓存
高并发系统三大利器之缓存
394 0
高并发系统三大利器之缓存
谈谈数字化转型的四个战略框架及首席执行官们的数字化思维
从总体上讲,商业世界和IT世界并没有学习到有效的数字化转型方法,其速度几乎没有达到或应该达到的水平。
谈谈数字化转型的四个战略框架及首席执行官们的数字化思维
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问