在 ggplot 图例中添加多个希腊符号

3

这个帖子引导我进入了这个不错的维基,介绍如何在ggplot中添加希腊字母符号。下面的代码在图例中给α和β赋值。如果我想要为同一数据点添加超过一个希腊符号,例如“alpha =1,gamma = 2”,我该怎么做?

d <- data.frame(x=1:10,y=1:10,f=rep(c("alpha","beta"),each=5), stringsAsFactors=FALSE)

value <- 3.1415
my.labs <- list(bquote(alpha==.(value)),bquote(beta==.(value)))

qplot(x,y,data=d,colour=f) +
  scale_colour_manual(values=1:2,breaks=c("alpha","beta"),
                      labels=my.labs)
2个回答

3

你可以直接使用Unicode转义将它们作为字符串传递。

my.labs <- c("\u03b1 = 1, \u03b3 = 1", paste("\u03b2 =", value))

qplot(x,y,data=d,colour=f) +
  scale_colour_manual(values=1:2, breaks=c("alpha","beta"),
                      labels=my.labs)

enter image description here


太好了!但是你怎么知道符号的字符串代码呢? - tomka
1
@tomka 谷歌搜索“Unicode alpha”,并使用\u前面的十六进制数 - 希腊字母都是连续的。 - Allan Cameron

2
也许可以这样做。您可以巧妙地使用paste()将元素连接起来,并使用expression()函数添加,
library(ggplot2)
#Code
d <- data.frame(x=1:10,y=1:10,f=rep(c("alpha","beta"),each=5), stringsAsFactors=FALSE)
value <- 3.1415
my.labs <- c(expression(paste(alpha==1,',',~gamma==2)),expression(beta))
#Plot
qplot(x,y,data=d,colour=f) +
  scale_colour_manual(values=1:2,breaks=c("alpha","beta"),
                      labels=my.labs)

输出:

在此输入图像描述


注:此段内容为HTML格式,无需翻译标签及其中的解释。

有趣 (+1),但是缺少逗号或分隔符,我认为。 - tomka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接