2011-12-14 312 views
8

我正在嘗試使用透明填充和相應的圖例來製作boxlot。除了圖例鍵沒有透明填充之外,使用alpha值進行繪圖的效果很好。下面的例子說明了困難:使用R和ggplot2的boxplot圖例中的透明度

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) 

Boxplot with transparencies in fill, but not int the legend

有沒有一種方法,使傳說中的按鍵過於透明的填充值?

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

在此先感謝您提供有關此問題的任何提示。

其中阿爾法測繪工作的一個例子是我在過去使用的下列

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

Plot where alpha mapping works fine

+0

根據khoske的評論和你的反例,我刪除了我的答案。 – 2011-12-15 08:04:47

回答

1

的解決方案是這樣的產品......其巨大的技巧,但作品。

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選項,就像這個情況下的legend選項一樣工作。