csgillespie
csgillespie

Reputation: 60492

geom_rect and NULL

I've been looking at the geom_rect example in section 5.10 of the ggplot2 book and don't understand the purpose of the NULL's in the aes function. For example, using the mpg data:

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")

My understanding is that the NULL's are resetting the x & y mapping, but I don't see why this should affect the transparency.

Upvotes: 5

Views: 1418

Answers (1)

csgillespie
csgillespie

Reputation: 60492

I've just made Hadley's comment a community wiki answer

The reason why the specification matters is that multiple transparent rectangles stacked on top of each other will look solid - because you haven't reset the data, you get one rectangle for each row in mtcars. You probably want to use annotate instead.

Upvotes: 1

Related Questions