查看: 286|回复: 4

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

[复制链接]
  • TA的每日心情

    2016.7.20 14:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    帝王蝶

    Rank: 4

    主题
    21
    奥币
    723
    积分
    292
    注册时间
    2016.3.21
    在线时间
    69 小时

    发表于 2020.2.14 15:25:52 | 显示全部楼层 |阅读模式
                                                                                                        全世界所有的语言都有表达爱意的方式,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
    好了,自由发挥去吧!
    ◆ ◆ ◆   ◆  ◆精心整理(含图版)|你要的全拿走!有备无患 (R统计,ggplot2绘图,生信图形可视化汇总)【觉得不错,右下角点个“在看”,期待您的转发,谢谢!】


                                    

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    该用户从未签到

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    5
    积分
    14
    注册时间
    2020.1.5
    在线时间
    2 小时

    最佳新人


    发表于 2020.2.15 11:59:48 | 显示全部楼层
    怎么这么牛啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    yes!
    3 小时前
  • 签到天数: 23 天

    连续签到: 12 天

    [LV.4]偶尔看看III

    中华鲟

    Rank: 5Rank: 5

    主题
    45
    奥币
    632
    积分
    571
    注册时间
    2017.12.20
    在线时间
    34 小时

    突出贡献活跃会员最佳新人


    发表于 2020.2.15 14:33:10 | 显示全部楼层
    腻害
    回复

    使用道具 举报

  • TA的每日心情

    昨天 10:52
  • 签到天数: 15 天

    连续签到: 2 天

    [LV.4]偶尔看看III

    帝王蝶

    Rank: 4

    主题
    0
    奥币
    225
    积分
    318
    注册时间
    2020.1.16
    在线时间
    7 小时

    发表于 2020.2.17 10:19:58 | 显示全部楼层
    厉害
    回复

    使用道具 举报

  • TA的每日心情
    好棒
    4 天前
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    127
    积分
    97
    注册时间
    2019.3.14
    在线时间
    7 小时

    发表于 2020.2.17 11:53:13 | 显示全部楼层
    哇好看
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表