ggplot2中的希腊符号:geom_boxplot

4

我正在尝试将希腊符号放入ggplot2中制作的boxplot中。然而,经过查看Stack Overflow上以往的所有问题后,我却无法让他们的任何示例正常运行。

所以,对于这个重复的问题,如果有人能在这里帮助我,我将非常感激。

到目前为止,我的代码是:

## Data
names = LETTERS[1:3]
x = runif(99)
y = rep(names, length = length(x))
Parameters = factor(rep(c("Lambda", "Phi", "Gamma"), each = length(names)), 
                    levels = c("Lambda", "Phi", "Gamma"))
plot.df = data.frame(x, y, Parameters)
limits = quantile(plot.df[,1], probs = seq(0.1,0.9,by=0.1))
##Create Plot
dodge = position_dodge(width=0.5)
p = ggplot(plot.df, aes(x = y,y = x, colour = Parameters)) +
    geom_boxplot(aes(shape = Parameters), outlier.shape = 19, outlier.colour = NULL, outlier.size = 0.8) +
        scale_shape_manual(values = rep(19, 3)) +
            scale_y_continuous(limits = c(0, 1)) +
                coord_flip() + labs(title = "TITLE", x = "", y = "") + 
                xlim(rev(names)) +
                theme(legend.position = "right")
print(p)

这就是结果:

图表

代码中有几个部分对于我的真实数据来说是必要的(即重新组织x轴(即y轴)等)。

我想将图例值更改为希腊字母,但我完全不知道如何做到这一点。

谢谢


你试过这个了吗? - jbaums
嗨,不,我之前没有尝试过这个。我试了一下,它使用了“unit”函数,似乎是来自grid包 - 并且在R 3.0.0中不可用。你知道它是否已经被移植到其他包中吗? - SamPassmore
1
grid 应该在 R 3.x.x 中预先安装。尝试使用 library(grid) - jbaums
你可能需要加载网格。使用lattice和ggplot2,它们只是附加而不是完全加载。 - IRTFM
啊,是的。这个方法确实有效,但它会同时绘制旧图例和新图例,并且改变了颜色。我尝试将legend.position = "none"更改为:但这会删除两个图例。 - SamPassmore
1个回答

5

继续你的脚本:

my.labs <- list(bquote(lambda),bquote(phi),bquote(gamma))

p <- p+
  scale_colour_manual(values=1:3,breaks=c("Lambda", "Phi", "Gamma"),
                      labels=my.labs)+
  scale_shape_manual(values=rep(19, 3),breaks=c("Lambda", "Phi", "Gamma"),
                      labels=my.labs)
print(p)

输入图像描述

阅读更多


嗨,谢谢 - 看起来这个代码似乎可行,但我还没有尝试过。你能告诉我在 scale_shape_manual 函数中 values=rep(19,3) 的意义是什么吗? - SamPassmore
好的。需要手动颜色和手动形状规范,以防止创建两个图例(相当奇怪的设计)。如果您想要大写字母,则只需将希腊字母名称大写即可。 - IRTFM
1
@SamPassmore,“values=rep(19,3)”只是为了保持您定义的形状值。当然,您可以重新定义它们。同样,您可以通过在“scale_colour_manual”中设置“values”来定义自己的颜色,我将1:3设置为“黑色”,“红色”和“绿色”。 - xb.

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