使用表达式标签时,请合并填充和颜色图例

时间:2013-06-06 12:22:52

标签: r ggplot2

我需要在图例标签中使用子/上标。但是,如果我使用相应比例的label参数,则不再组合颜色和填充比例。

有没有办法解决这种或不同的方式在传说中使用子/上标?

DF <- data.frame(x=1:10,y=(1:10)^2,
                 ymax=(1:10)^2.2,
                 ymin=(1:10)^1.8,
                 fac=rep(c("a","b"),each=5))

library(ggplot2)
p <- ggplot(DF,aes(x=x,y=y,ymin=ymin,ymax=ymax,colour=fac,fill=fac)) +
  geom_line() +
  geom_ribbon(alpha=0.5)

print(p)

enter image description here

p +  scale_color_discrete(labels=c("a"=expression(a[{foo}]),
                                   "b"=expression(b[{bar}]))) +
     scale_fill_discrete(labels=c("a"=expression(a[{foo}]),
                                  "b"=expression(b[{bar}]))) 

enter image description here

1 个答案:

答案 0 :(得分:6)

不太优雅的解决方案是删除fill图例,然后在override.aes=函数中使用guides() color=图例。对于此图例,我们可以设置自己的fill=值。唯一的问题是你必须知道颜色名称。我认为使用scale_color_manual()会更容易,因为您已经提供了自己的颜色值。

p +  scale_color_discrete(labels=c("a"=expression(a[{foo}]),
                                   "b"=expression(b[{bar}]))) +
  scale_fill_discrete(guide="none")+
  guides(color=guide_legend(override.aes=list(fill=c("#F8766D","#00BFC4"))))

enter image description here