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.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…