2011-12-14 24 views
8

Estoy tratando de hacer diagramas de caja con un relleno transparente y una leyenda correspondiente. El trazado con valores alfa funciona bien, excepto que las teclas de leyenda no tienen rellenos transparentes. El siguiente ejemplo ilustra la dificultad:Transparencia en las claves de la leyenda del diagrama de caja usando R y ggplot2

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

¿Hay una manera de hacer que los valores de relleno en las teclas de leyenda transparente también?

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

Gracias de antemano por cualquier consejo sobre este tema.

Un ejemplo en el que funciona el mapeo alfa es el siguiente

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

Plot where alpha mapping works fine

+0

Eliminé mi respuesta a la luz de los comentarios de khoske y su contraejemplo. –

+0

@PaulHiemstra - ¿Podría recuperar su respuesta, para que podamos ver los comentarios de Khoske? Además, si los comentarios muestran por qué ** no se puede hacer **, podría incorporar eso en la parte superior de su respuesta, y luego podría ser votado y aceptado por yellowcap. –

+0

Envíe un informe de error a https://github.com/hadley/ggplot2/issues – hadley

Respuesta

1

La solución que he usado en el pasado es éste ... es un gran truco, pero funciona.

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) 

que suelen utilizar cuando estoy haciendo una parcela geom_text, pero quieren la leyenda para mostrar como puntos o bloques. Pero funciona para esta instancia también.

En caso de que Hadley esté prestando atención a este hilo, me he encontrado queriendo una opción plot = T/F que funcione como la opción de leyenda para esta situación.

Cuestiones relacionadas