如何在R中使用emo包在ggplot2中显示表情符号?

wen*_*wen 9 r ggplot2 emoji

我试图使用包ggplot2来绘制一些图表,其中emojis显示为标签emo.我从这篇文章中学到了它,但它根本不起作用.

我之前尝试过这个emojifont包,但它是一种字体类型,可以呈现黑白的表情符号,并且需要使用例如打开一个新的图形设备quartz().

为了解决颜色问题,Tino建议(参考上面的帖子)使用gridSVG包,即在创建新的图形设备和绘图后emojifont,将图形保存ps = grid.export("emoji.svg", addClass=T)在本地磁盘上作为一个.svg文件,以一种彩色风格呈现表情符号.

我真的很感激解决方案:(a)提供丰富多彩的表情符号和(b)直接显示图表,这与常规ggplot用例兼容.

library(ggplot2)
library(emo)

names = c("smile","school","office","blush","smirk","heart_eyes")
n = length(names):1
e = sapply(names, emo::ji)
dat = data.frame(emoji_name = names, n = n, emoji = e, stringsAsFactors = F)

ggplot(data=dat, aes(emoji_name, n)) + 
  geom_bar(stat = "identity") +
  scale_x_discrete(breaks = dat$emoji_name, labels = dat$emoji) +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的R版本是

> sessionInfo()
R version 3.4.4 (2018-03-15)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12
Run Code Online (Sandbox Code Playgroud)

dmi*_*kno 6

library(ggplot2)
library(dplyr)
library(purrr)
#remotes::install_github("hadley/emo")
library(emo)

dat <- tibble(names = c("smile","school","office","blush","smirk","heart_eyes"),
       emoji = map_chr(names, emo::ji)) %>% 
  tibble::rowid_to_column("n")

dat %>% ggplot(aes(n, emoji)) + 
  geom_col(orientation="y") +
  theme(axis.text.y = element_text(size = 18))
Run Code Online (Sandbox Code Playgroud)

sessioninfo::session_info()
#> ? Session info ???????????????????????????????????????????????????????????????
#>  setting  value                       
#>  version  R version 3.6.3 (2020-02-29)
#>  os       Ubuntu 18.04.4 LTS          
#>  system   x86_64, linux-gnu           
#>  ui       X11                         
#>  language en_GB:en                    
#>  collate  en_GB.UTF-8                 
#>  ctype    en_GB.UTF-8                 
#>  tz       Europe/Oslo                 
#>  date     2020-04-07                  
#> 
#> ? Packages ???????????????????????????????????????????????????????????????????
#>  package     * version    date       lib source                     
#>  assertthat    0.2.1      2019-03-21 [1] CRAN (R 3.6.0)             
#>  cli           2.0.2      2020-02-28 [1] CRAN (R 3.6.3)             
#>  colorspace    1.4-1      2019-03-18 [1] CRAN (R 3.6.0)             
#>  crayon        1.3.4      2017-09-16 [1] CRAN (R 3.6.0)             
#>  digest        0.6.25     2020-02-23 [1] CRAN (R 3.6.3)             
#>  dplyr       * 0.8.5      2020-03-07 [1] CRAN (R 3.6.3)             
#>  ellipsis      0.3.0      2019-09-20 [1] CRAN (R 3.6.1)             
#>  emo         * 0.0.0.9000 2020-04-07 [1] Github (hadley/emo@3f03b11)
#>  evaluate      0.14       2019-05-28 [1] CRAN (R 3.6.0)             
#>  fansi         0.4.1      2020-01-08 [1] CRAN (R 3.6.2)             
#>  farver        2.0.3      2020-01-16 [1] CRAN (R 3.6.2)             
#>  generics      0.0.2      2018-11-29 [1] CRAN (R 3.6.0)             
#>  ggplot2     * 3.3.0      2020-03-05 [1] CRAN (R 3.6.3)             
#>  glue          1.4.0      2020-04-03 [1] CRAN (R 3.6.3)             
#>  gtable        0.3.0      2019-03-25 [1] CRAN (R 3.6.0)             
#>  highr         0.8        2019-03-20 [1] CRAN (R 3.6.0)             
#>  htmltools     0.4.0      2019-10-04 [1] CRAN (R 3.6.1)             
#>  knitr         1.28       2020-02-06 [1] CRAN (R 3.6.3)             
#>  labeling      0.3        2014-08-23 [1] CRAN (R 3.6.0)             
#>  lifecycle     0.2.0      2020-03-06 [1] CRAN (R 3.6.3)             
#>  lubridate     1.7.8      2020-04-06 [1] CRAN (R 3.6.3)             
#>  magrittr      1.5        2014-11-22 [1] CRAN (R 3.6.3)             
#>  munsell       0.5.0      2018-06-12 [1] CRAN (R 3.6.0)             
#>  pillar        1.4.3      2019-12-20 [1] CRAN (R 3.6.2)             
#>  pkgconfig     2.0.3      2019-09-22 [1] CRAN (R 3.6.1)             
#>  purrr       * 0.3.3      2019-10-18 [1] CRAN (R 3.6.1)             
#>  R6            2.4.1      2019-11-12 [1] CRAN (R 3.6.1)             
#>  Rcpp          1.0.4      2020-03-17 [1] CRAN (R 3.6.3)             
#>  rlang         0.4.5      2020-03-01 [1] CRAN (R 3.6.3)             
#>  rmarkdown     2.1        2020-01-20 [1] CRAN (R 3.6.3)             
#>  scales        1.1.0.9000 2020-04-03 [1] local                      
#>  sessioninfo   1.1.1      2018-11-05 [1] CRAN (R 3.6.0)             
#>  stringi       1.4.6      2020-02-17 [1] CRAN (R 3.6.3)             
#>  stringr       1.4.0      2019-02-10 [1] CRAN (R 3.6.0)             
#>  tibble        3.0.0      2020-03-30 [1] CRAN (R 3.6.3)             
#>  tidyselect    1.0.0      2020-01-27 [1] CRAN (R 3.6.3)             
#>  vctrs         0.2.4      2020-03-10 [1] CRAN (R 3.6.3)             
#>  withr         2.1.2      2018-03-15 [1] CRAN (R 3.6.0)             
#>  xfun          0.12       2020-01-13 [1] CRAN (R 3.6.2)             
#>  yaml          2.2.1      2020-02-01 [1] CRAN (R 3.6.2)             
#> 
#> [1] /home/dm0737pe/R/x86_64-pc-linux-gnu-library/3.6
#> [2] /usr/local/lib/R/site-library
#> [3] /usr/lib/R/site-library
#> [4] /usr/lib/R/library
Run Code Online (Sandbox Code Playgroud)

reprex 包(v0.3.0)于 2020 年 4 月 7 日创建


Wim*_*pel 5

使用emojifont包:)

在这里阅读更多

library(ggplot2)
library(emojifont)

names = c("smile","school","office","blush","smirk","heart_eyes")
n = length(names):1
e = sapply(names, emojifont::emoji)
dat = data.frame(emoji_name = names, n = n, emoji = e, stringsAsFactors = F)

ggplot(data=dat, aes(emoji_name, n)) + 
  geom_bar(stat = "identity") +
  scale_x_discrete(breaks = dat$emoji_name, labels = dat$emoji) +
  theme( axis.text.y =element_text( size=20 ) ) +
  coord_flip()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

> sessionInfo()
R version 3.5.1 (2018-07-02)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Run Code Online (Sandbox Code Playgroud)

  • @Wimpel这是一个误导性的警告信息,实际上意味着它在CRAN上不可用,而不是它不适用于你的R版本.`emo`只在github上:https://github.com/hadley/emo (4认同)
  • 谢谢,但我知道这个解决方案。我不喜欢使用`emojifont`,因为(a)emojifonts是字体(它们不是彩色的;它们是黑白的),并且(b)它经常需要使用`quartz()`打开一个新的图形设备,否则它未显示或未正确显示。 (2认同)