2012-01-05 10 views
5

He estado buscando el ejemplo geom_rect en la sección 5.10 del libro ggplot2 y no entiendo el propósito de los NULL en la función aes . Por ejemplo, el uso de los datos mpg:geom_rect y NULL

g = ggplot(data=mpg, aes(x=displ, y=hwy)) + geom_point() 

#Produces a plot with a transparent filled region 
g + geom_rect(aes(NULL, NULL), alpha=0.1,xmin=5, xmax=7, ymin=10, 
ymax=45, fill="blue") 

#Solid filled region (v0.9) or nothing in v0.8 
g + geom_rect(alpha=0.1,xmin=5, xmax=7, ymin=10, ymax=45, fill="blue") 

Mi entendimiento es que el NULL de está reposicionando la x & y mapeo, pero no veo por qué esto debería afectar a la transparencia.

+0

Su segundo ejemplo no produce ningún rectángulo para mí. Pero 'geom_rect' siempre me ha parecido vudú (la única manera en que puedo hacer que funcione de manera confiable es siempre pasar su propio marco de datos). – joran

+0

@joran: estoy usando ggplot v0.9. No pensé que habría una diferencia, lo siento. De todos modos, ¿de qué se trata el 'NULL' en el segundo comando? – csgillespie

+1

Mi comprensión es la misma que la tuya, a saber, que está restableciendo la estética xey. Pero tampoco sé por qué afectaría al alfa, lo siento. – joran

Respuesta

1

que acabo de hacer el comentario de Hadley una comunidad wiki respuesta

La razón por la cual los asuntos de especificación es que múltiples transparentes rectángulos apilados uno encima del otro se verá sólido - porque paraíso' Para restablecer los datos, obtienes un rectángulo por cada fila en mtcars. Probablemente quiera usar anotación en su lugar.

Cuestiones relacionadas