【发布时间】:2020-09-13 23:49:20
【问题描述】:
我有包含表情符号的 unicode 文本。我想以包含表情符号颜色的方式将它们呈现在带有 geom_text 或 geom_label 的 ggplot2 图形中。我看过emojifont、emo 和ggtext,这些似乎都不允许这样做。问题当然是geom_text 中文本的颜色受颜色审美的支配。有什么方法可以通过 geom_text 或其他解决方法在我的文本中呈现颜色?
可重现的例子:
library(ggplot2)
pets <- "I like ???? ???? ???? ????"
cat(pets)
ggplot() +
theme_void() +
annotate("text", x = 1, y = 1, label = pets, size = 15)
cat(pets) 在 RStudio 的屏幕上工作,但最后一行绘制的图形如下所示:
或者,使用ggtext::geom_richtext() 我会得到类似的黑白结果和以下错误消息:
> library(ggtext)
> ggplot() +
+ theme_void() +
+ annotate("richtext", x = 1, y = 1, label = pets, size = 15)
Warning messages:
1: In text_info(label, fontkey, fontfamily, fontface, fontsize, cache) :
unable to translate '<U+0001F436>RStudioGD142.6791338582677' to native encoding
2: In text_info(label, fontkey, fontfamily, fontface, fontsize, cache) :
unable to translate '<U+0001F431>RStudioGD142.6791338582677' to native encoding
3: In text_info(label, fontkey, fontfamily, fontface, fontsize, cache) :
unable to translate '<U+0001F41F>RStudioGD142.6791338582677' to native encoding
4: In text_info(label, fontkey, fontfamily, fontface, fontsize, cache) :
unable to translate '<U+0001F422>RStudioGD142.6791338582677' to native encoding
5: In do.call(gList, grobs) :
unable to translate 'I like <U+0001F436> <U+0001F431> <U+0001F41F> <U+0001F422>' to native encoding
【问题讨论】: