library(tidyverse)
library(emojifont)
load.emojifont("OpenSansEmoji.ttf")
pal <- c("\U1f337"="blue","\U1f370"="red")
set.seed(124)
xdf <- data_frame(x=rnorm(10),y=rnorm(10),
label=rep(c("\U1f337","\U1f370"),5))
xdf %>% ggplot(aes(x=x,y=y,label=label,color=factor(label))) +
geom_text(family="OpenSansEmoji") +
scale_color_manual("object",values=pal) +
guides(color=guide_legend(labels=FALSE)) +
theme(legend.text=element_text(family="OpenSansEmoji"))
很容易看到图例尽可能丰富。
最好使用彩色表情符号而不是彩色字母a
的两倍,并且我想使用tulip
和cake
这两个单词来代替黑色表情符号。
这可以实现吗?
答案 0 :(得分:3)
我以前在表情符号字体方面工作不多,但是以下内容对您有用吗?
数据争用(为方便起见,我更愿意将标签列重命名为符号,以使它们的预期用途分开,但里程可能会有所不同):
xdf2 <- xdf %>%
rename(symbol = label) %>%
mutate(label = ifelse(symbol == "\U0001f337", "tulip", "cake"))
> xdf2
# A tibble: 10 x 4
x y symbol label
<dbl> <dbl> <chr> <chr>
1 -1.39 0.318 "\U0001f337" tulip
2 0.0383 -1.42 "\U0001f370" cake
3 -0.763 -0.405 "\U0001f337" tulip
4 0.212 0.995 "\U0001f370" cake
5 1.43 0.959 "\U0001f337" tulip
6 0.744 0.918 "\U0001f370" cake
7 0.700 -0.151 "\U0001f337" tulip
8 -0.229 -1.22 "\U0001f370" cake
9 0.197 -0.869 "\U0001f337" tulip
10 1.21 -1.04 "\U0001f370" cake
图解:
xdf2 %>%
ggplot(aes(x = x, y = y, shape = symbol, color = label)) +
geom_point() +
scale_shape_identity() +
scale_color_manual(values = c("tulip" = "blue",
"cake" = "red"),
guide = guide_legend(
override.aes = list(shape = c("\U0001f370",
"\U0001f337"))
))
(由于某些原因,我的机器上实际的郁金香/蛋糕表情符号看起来有所不同...)