After fiddling with point size options in ggplot2, I noticed examples in which size was passed both inside and outside the aes()
parameter of geom_point()
. From the `geom_point() page on Hadley's site:
p <- ggplot(mtcars, aes(wt, mpg))
# passed inside
p + geom_point(aes(size = qsec))
p + geom_point(aes(size = qsec)) + scale_area()
# passed outside
p + geom_point(colour = "red", size = 3)
p + geom_point(colour = "grey50", size = 4)
I've found these behave differently when it comes to legends. When passing inside aes()
I can get a legend to appear, though I need to set breaks even though I only have two differently sized points; otherwise, I get a range of five point sizes even though only 2 are used.
Also, the sizes passed aren't understandably meaningful; I need to specify the relative size using range=c(min,max)
and set breaks to just two sizes instead of the default five.
If I pass size outside of aes()
, the sizes seem honored but I can't get a legend on my plot; I tried scale_size
, scale_size_continuous
, and scale_size_manual
without success.
From the geom_point()
page there's this:
The following aesthetics can be used with geom_point. Aesthetics are mapped to variables in the data with the aes function:
geom_point(aes(x = var))
...
Scales control how the variable is mapped to the aesthetic and are listed after each aesthetic.
[Listing of all the aesthetic options here (shape, colour, size, etc.)]
From that, it's still not exactly clear how the options (size in this question, but this should be meaningful for other aesthetics) inside and outside of aes()
affect the result.