首页 > 解决方案 > geom_emoji() 函数如果存储在变量中则不接受输入

问题描述

我正在尝试将表情符号包含在使用 R 和 ggplot2 创建的图中。我目前正在使用 emoGG 包,特别是该geom_emoji()功能。奇怪的是,我可以将表情符号名称作为字符串传递,但我不能将字符串分配给变量并改用它。这使得不可能使用查找表自动分配。这是我的意思的一个例子:

# Reproducible Example

# packages
library(emoGG)
library(ggplot2)

# Example (works)
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  geom_emoji(emoji="1f337")


# Doesn't work (Error: Not Found)
Pic <- "1f337"
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  geom_emoji(emoji=Pic)

# Identical
identical("1f337",Pic)

标签: rggplot2emoji

解决方案


我认为开发人员没有预料到这种用途。他们在 Github 上的相关代码部分假定您一直在传递带有字符串文字的命名参数。

下面的代码将供您使用。但我不认为你可以像使用其他ggplot2基于扩展的那样使用美学轻松地在单个图上绘制多个表情符号。可能还有其他软件包可以绘制符合您需求的符号。

library(emoGG)
#> Loading required package: ggplot2
library(ggplot2)
Pic <- "1f337"
ggplot(iris, aes(Sepal.Length, Sepal.Width, color = Species)) +
  do.call(geom_emoji, list(emoji = Pic))

reprex 包(v0.3.0)于 2019 年 11 月 22 日创建


推荐阅读