专栏首页生信补给站2-14 |“特殊”的日子,多学一种表达爱的方式

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

全世界所有的语言都有表达爱意的方式,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

好了,自由发挥去吧!

本文分享自微信公众号 - 生信补给站(Bioinfo_R_Python),作者:ZHHXM

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「π」里藏着所有人的银行卡密码和生日?

    导读:3月14日是圆周率节,是全人类的传统节日。自古以来,在3月14日这一天,世界各族人民会吃一个派庆祝节日,祈求好运,亲友之间也会互赠苹果派、蓝莓派、草莓派、...

    华章科技
  • 惊呆了!这10种表白微信红包今天发了2.78亿个

    早上小派公布今天可以发520元金额的红包后,广大网友纷纷留下评论,你最赞同哪一个呢? 5月20日,单个红包限额从200元提升到520元,仅此一天,只为大家玩得开...

    腾讯大讲堂
  • 3月14日 我用Python几十行代码为女朋友画了一个爱心

    今天是个特殊的日子,圆周率日,哈哈!来对你爱的人表达爱吧! 女朋友就是我爱人啦!?

    Michael阿明
  • 精心整理(含图PLUS版)|R语言生信分析,可视化

    为了能更方便的查看,检索,对文章进行了精心的整理(PLUS)。建议收藏,各取所需,当前没用也许以后就用到了呢!

    西游东行
  • 摆脱定时任务的cron表达式的困扰

      最近因为需要,需要适用Spring的task定时任务进行跑定时任务,以前也接触过,但是因为懒没有好好地理解@Scheduled的cron表达式,这次便对它做...

    阿豪聊干货
  • 3 C语言 流程控制 循环 跳转

    前面的章节一直在介绍C语言的基本语法知识,然而仅仅依靠这些语法知识还不能编写出完整的程序。在程序中,通常需要加入业务逻辑,并对程序的流程进行控制。本章将重点讲解...

    py3study
  • 沧源给留守儿童的“特殊礼物”—云端陪伴

    ? 今天是六一国际儿童节,学校里都在组织各种缤纷多彩的活动,家长们也在琢磨送孩子什么样的节日礼物。 最近,我听到了一个6岁小男孩的儿童节愿望,有点心酸。这个...

    腾讯智慧教育
  • 总是被发好人卡?那是你还没用这款匿名「告白神器」

    知晓君
  • 云端家长会,给佤山留守儿童的特殊六一礼物

    ? ? 6岁的嘉乐许了一个愿望:我要飞到天空上,看看我爸爸。 2年前,嘉乐的妈妈离开家后,就再也没有出现。随后,爸爸只身赴广东打工,留下年幼的男孩和爷爷奶奶一...

    鹅老师

扫码关注云+社区

领取腾讯云代金券