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


好了,自由发挥去吧!

相关文章
|
敏捷开发 前端开发 开发者
想要成为软件开发中的王者,需要明白的 21 条准则
想要成为软件开发中的王者,需要明白的 21 条准则
|
6月前
|
设计模式 机器学习/深度学习 Kubernetes
龙蛇入笔,身不由己,码农出书以及无法控制的表达欲
拙著《Tornado(龙卷风)编程实战》结集付梓,自惟庸陋,略為芹献,积年咳唾,不入方家,聊供诸君一哂。 这本书以异步框架Tornado为基底,透过一个完整的项目阐释异步框架结合Vue.js如何实现一个低成本的前后端分离架构。项目内涉及的知识点涵括:Web3.0、数据库、设计模式落地、算法和数据结构落地、跨境支付、全文检索、Websocket、以及当下时新的ChatGPT和深度学习等技术,最后以K8S部署收尾。 Tornado框架在开发者社区中有一定的知名度和使用率,但确实没有专门为Tornado框架编写的专著,但是私以为Tornado值得地球上任何一座开源奖杯,这本书,献给Tor
龙蛇入笔,身不由己,码农出书以及无法控制的表达欲
|
6月前
|
人工智能 算法 前端开发
想转行IT,有前途嘛?30个详细理由中会得到你想要的答案
想转行IT,有前途嘛?30个详细理由中会得到你想要的答案
122 0
|
JavaScript 前端开发 Python
编程中表达爱和浪漫
当涉及爱和浪漫时,一行代码可能不足以表达所有的感受和情感。因此,在编程中表达爱和浪漫的方式可能会因个人喜好和情感而异。以下是一些可能有趣或浪漫的编程示例:
128 0
|
前端开发 JavaScript 程序员
程序员祝福圣诞快乐的方式(内涵完整代码)
程序员祝福圣诞快乐的方式(内涵完整代码)
180 0
|
程序员
七夕节快乐--来自于程序员的表达
七夕节快乐--来自于程序员的表达
201 0
七夕节快乐--来自于程序员的表达
|
测试技术
软件测试好学吗 只要选对了学习方式,就并不难学
我们都知道,如今互联网IT行业,在国内可是非常吃香的,尤其是近些年随着软件的普及,人们对软件的要求也是越来越高,因此国内各大互联网企业,也开始大量招聘软件测试人员,但由于这个岗位在我国的发展时间并不长,人员需求也是供应不求的。
198 0
软件测试好学吗 只要选对了学习方式,就并不难学
|
Java C语言
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
各位学弟学妹们好,作为稍微年长的我(岁月是把杀猪刀啊),今天就给大家补补课。 在大学里的,我们上的计算机专业课程一般都是像操作系统、编译原理、计算机组成原理、计算机网络这些理论课程,还有一些像C语言、Java、.Net这些可以实践的课程,甚至还有可能让你焊一个收音机,但是对于一些基本习惯却很容易被忽略,需要学弟学妹们自行摸索。
217 0
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
|
前端开发 算法 小程序
280字编程挑战:把一条推特长度的代码玩出花
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 推特与计算机能擦出什么样的火花呢?大多数人可能就想到在计算机上发推特呗。但是,有人就不这么想。酷爱计算机演进史和推特的 Dominic Pajak 创建了 BBC Micro Bot,它能够将一条 280 字符的推特经过模拟处理进而创建 3 秒时长的视频。
280字编程挑战:把一条推特长度的代码玩出花
|
程序员
如何用一段简单的代码讲述一个悲伤的故事?
程序员的悲伤故事难道不应该是: 别人的老板晚上带他出去耍,你的老板半夜催你改代码; 别的程序员工资高、待遇好,而你只是血压高、心态好…… 擦干眼泪告诉自己:程序员前半生的悲伤都不是事儿,因为后半生你就慢慢习惯了。
961 0