I am trying to make boxplots with a transparent fill and a corresponding legend. The plotting with alpha values works fine except that the legend keys do not have transparent fills. The following example illustrates the difficulty:
我正在尝试制作带有透明填充和相应图例的箱形图。除了图例键没有透明填充外,使用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)
Is there a way to make the fill values in the legend keys transparent too?
有没有办法让图例键中的填充值也透明?
SessionInfo()
R version 2.14.0 (2011-10-31)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
ggplot2_0.8.9
Thanks in advance for any tips on this issue.
提前感谢您对此问题的任何提示。
An example where the alpha mapping works is the following
alpha映射的工作示例如下
ggplot(dat) + geom_point(aes(x, y, fill = z, colour = z, shape = z), alpha = 0.2)
1 个解决方案
#1
1
The solution I've used in the past is this one... its a huge hack but works.
我过去使用过的解决方案就是这个......它是一个巨大的黑客但是有效。
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)
I usually use it when I'm making a geom_text plot, but want the legend to show as points or blocks. But it works for this instance too.
我通常在制作geom_text图时使用它,但希望图例显示为点或块。但它也适用于这个实例。
In case Hadley is paying attention to this thread, I've found myself wanting a plot=T/F option that works like the legend option for this situation.
如果Hadley正在关注这个帖子,我发现自己想要一个plot = T / F选项,就像这种情况下的图例选项一样。
#1
1
The solution I've used in the past is this one... its a huge hack but works.
我过去使用过的解决方案就是这个......它是一个巨大的黑客但是有效。
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)
I usually use it when I'm making a geom_text plot, but want the legend to show as points or blocks. But it works for this instance too.
我通常在制作geom_text图时使用它,但希望图例显示为点或块。但它也适用于这个实例。
In case Hadley is paying attention to this thread, I've found myself wanting a plot=T/F option that works like the legend option for this situation.
如果Hadley正在关注这个帖子,我发现自己想要一个plot = T / F选项,就像这种情况下的图例选项一样。