2-14 |“特殊”的日子,多学一种表达爱的方式
时间:2022-07-22
本文章向大家介绍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
好了,自由发挥去吧!
- 并发编程之future模式
- Html5模拟通讯录人员排序(sen.js)
- Goroutine + Channel 实践
- Http和Https的区别
- JavaScript实现单击全选 ,再次点击取消全选
- 连AI都在看《英雄联盟》游戏直播
- MAC使用adb工具
- 并发编程之master-worker模式
- Android WebView全面总结
- Url参数中出现+、空格、=、%、&、#等字符的解决办法
- 解决CSS垂直居中的几种方法(基于绝对定位,基于视口单位,Flexbox方法)
- Go语言学习之cgo(golang与C语言相互调用)
- golang之旅--数据类型之字符串
- Android保存图片到系统图库
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 虚拟机系列 | 执行引擎和垃圾回收
- 在Linux系统中编译ARM版EasyNTS上云网关服务报undefined错误的解决方案
- 从全备中恢复单库或单表,小心有坑!
- Zookeeper安装以及常用操作
- Codeforces Round 671 (Div. 2) A-D
- 程序中并没有走缓存,为什么执行时间短了
- ES 常用Linux查询命令汇总
- PostgreSql 怎么获取数据库中关键系统信息(一)
- 树莓派基础实验36:通用串口通信实验
- PIMPL:休想窥探我的隐私!
- 树莓派基础实验37:pyserial模块通信实验
- 【答疑解惑】为什么你的 Charles 会抓包失败?
- Mybatis-generator 逆向工程 自定义PO,xml,mapper,example
- 高速上云/网络穿透/视频上云网关EasyNTS组网服务登录状态检测优化记录
- 树莓派基础实验38:逻辑分析仪分析PWM、UART信号