我正在绘制两个半透明的色带。使用下面的代码,不包括scale_fill_manual
部分,我基本上得到了想要的结果,具有名为"red"
的图例和标签blue
和red
。添加scale_fill_manual
部分允许我命名图例及其条目,但我失去了图例中色块的透明度。
x=1:10
y1=1:10
y2=2:11
y3=10:1
y4=9:0
dt=data.frame(x,y1,y2,y3,y4)
library(ggplot2)
ggplot(dt)+
geom_ribbon(aes(x=x,ymin=y1,ymax=y2,fill='red'),
alpha=0.4,)+
geom_ribbon(aes(x=x,ymin=y3,ymax=y4,fill='blue'),
alpha=0.5)+
scale_fill_manual(name='legendname',
values=c('red','blue'),
labels=c('one','two'))
sessionInfo()的输出结果
R version 2.15.2 (2012-10-26)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] scales_0.2.3 ggplot2_0.9.3 plyr_1.8 reshape2_1.2.2
loaded via a namespace (and not attached):
[1] colorspace_1.2-0 dichromat_1.2-4 digest_0.6.0 grid_2.15.2 gtable_0.1.2 labeling_0.1
[7] MASS_7.3-22 munsell_0.4 proto_0.3-10 RColorBrewer_1.0-5 rstudio_0.97.248 stringr_0.6.2
[13] tools_2.15.2
有很多类似问题的解决方案(如自定义 ggplot 图例,如何更改 ggplot2 图例的标题等),但我找不到专门解决这个问题的内容。
先行致谢。
alpha
是一种美学,它本身可以像其他变量一样映射到一个变量上。因此,您可以将alpha = grp
映射,并可能添加一个scale_alpha_manual
组件。 - joranalpha = 0.1
覆盖看起来太浅显了,0.9明显太暗,而0.4看起来非常接近图表的其余部分(对我来说)。 - joran