r - 在 ggplot2 中使用 FontAwesome 代替点

标签 r ggplot2 font-awesome

这可能是一件相当基本的事情,但我似乎找不到有意义的答案。

我正在尝试使用 R 中的 fontawesome 包将表情符号用作 ggplot2 图表中的点,但我很难弄清楚如何为每个变量分配不同的表情符号。

这是一些示例数据(我们将数据框称为“示例”):

sample <- structure(list(month = c(1L, 2L, 3L, 4L, 5L, 6L, 1L, 2L, 3L, 
4L, 5L, 6L), number = c(456550L, 374616L, 462086L, 436376L, 497526L, 
488574L, 119884L, 126356L, 129338L, 177496L, 128404L, 156754L
), variable = c("var1", "var1", "var1", "var1", "var1", "var1", 
"var2", "var2", "var2", "var2", "var2", "var2")), class = "data.frame", row.names = c(NA, 
-12L))

我看过包作者的 the example code,但是我想不出一种方法来为 var1 和 var2 分配一个单独的表情符号。

使用 FontAwesome cheatsheet ,假设我希望 var1 为“fa-windows”,var2 为“fa-linux”。这是我从包作者的示例中得到的一些情节代码:

library(ggplot2)
library(emojifont)
library(scales)

load.fontawesome()
testLabels <- fontawesome(c('fa-windows','fa-linux'))

windows() #only necessary if using RStudio

ggplot(sample,aes(x=month,y=number,color=variable))+
  geom_text(aes(label=testLabels),family='fontawesome-webfont', size=6)+
  scale_y_continuous(labels = comma)+
  theme(legend.text=element_text(family='fontawesome-webfont'))

这会引发错误:“错误:美学必须是长度 1 或与数据相同”,这并不奇怪,因为我没有将 var1 和 var2 设置为与 testLabels 中任何位置的相关 FontAwesome 值相对应代码。但是,我不知道该怎么做,而且我无法在网上找到答案(可能是我的搜索技巧欠缺)。

我相信具有更多 ggplot2 经验的用户可以帮助我快速找到答案 - 提前致谢!

最佳答案

labs <- data.frame(variable=c("var1", "var2"),
                   label = fontawesome(c('fa-windows','fa-linux')))
d <- merge(sample, labs, by.x="variable", by.y="variable")
ggplot(d,aes(x=month,y=number,color=variable))+
  geom_text(aes(label=label),family='fontawesome-webfont', size=6)+
  scale_y_continuous(labels = comma)+
  theme(legend.text=element_text(family='fontawesome-webfont'))

永远不要在 aes 中使用变量,它应该只用于美学映射。

关于r - 在 ggplot2 中使用 FontAwesome 代替点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40465947/

相关文章:

r - 如何将 `==`行为扩展到包含NA的向量?

r - 仅对向量 R 末尾的 NA 进行排序

r - 使用 ggplot2 geom_point() 绘制二进制(存在/不存在)数据

r - geom_area区域和轮廓图ggplot

r - 使用 bartMachine R 包预测的概率是失败概率

r - 使用连续预测变量的多个值计算 emmeans

r - facet_wrap() + ggplot2() 中每个面的独立颜色渐变

css - bootstrap fa 事件颜色

css - 字体很棒的悬停似乎有延迟

css - Font Awesome unicodes 显示为文本