我需要在图例标签中使用子/上标。但是,如果我使用相应比例的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)
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}])))
答案 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"))))