使用R和ggplot2制作透明的箱线图图例键

8

我试图制作具有透明填充和相应图例的箱线图。使用 alpha 值进行绘图可以正常工作,但图例键没有透明填充。下面的示例说明了这种困难:

dat <- data.frame(x=c('a', 'b', 'c'), y = runif(300), z = c('d', 'e', 'e'))
ggplot(dat) + geom_boxplot(aes(x, y, fill = z, colour = z), alpha = 0.2)

具有透明填充的箱线图,但图例中没有透明度

有没有办法使图例键中的填充值也透明?

SessionInfo()
R version 2.14.0 (2011-10-31)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
ggplot2_0.8.9

非常感谢您对此问题的任何建议。

Alpha映射有效的一个例子如下:

ggplot(dat) + geom_point(aes(x, y, fill = z, colour = z, shape = z), alpha = 0.2)

Plot where alpha mapping works fine


在考虑到khoske的评论和你提供的反例后,我删除了我的回答。 - Paul Hiemstra
@PaulHiemstra -- 你能恢复你的回答吗,这样我们就可以看到khoske的评论了吗?此外,如果评论说明为什么这是不可能的,你可以将其并入你的回答顶部,然后它可以被投票并希望被yellowcap接受。 - Josh O'Brien
请在 https://github.com/hadley/ggplot2/issues 提交错误报告。 - hadley
1个回答

1
过去我使用的解决方案是这个...这是一个巨大的hack,但可以工作。
dat <- data.frame(x=c('a', 'b', 'c'), y = runif(300), z = c('d', 'e', 'e'))
dummy <- dat
dummy$z <- factor(dummy$z)
dummy <- dummy[1,]
dummy[,2]<-NaN
ggplot() + 
geom_boxplot(data=dat,aes(x, y, fill = z, colour = z), alpha = 0.2,legend=FALSE) +
geom_density(data=dummy,aes(x, fill = z, colour = z), alpha = 0.2)

通常我在制作geom_text图时使用它,但希望图例显示为点或块。 但对于这种情况也适用。

如果Hadley正在关注这个线程,我发现自己想要一个类似于图例选项的plot=T/F选项来处理这种情况。


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