Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Special variables in ggplot (..count.., ..density.., etc.)

Tags:

r

ggplot2

Consider the following lines.

p <- ggplot(mpg, aes(x=factor(cyl), y=..count..))  p + geom_histogram()    p + stat_summary(fun.y=identity, geom='bar') 

In theory, the last two should produce the same plot. In practice, stat_summary fails and complains that the required y aesthetic is missing.

Why can't I use ..count.. in stat_summary? I can't find anywhere in the docs information about how to use these variables.

like image 310
Ernest A Avatar asked Jan 28 '13 20:01

Ernest A


1 Answers

Expanding @joran's comment, the special variables in ggplot with double periods around them (..count.., ..density.., etc.) are returned by a stat transformation of the original data set. Those particular ones are returned by stat_bin which is implicitly called by geom_histogram (note in the documentation that the default value of the stat argument is "bin"). Your second example calls a different stat function which does not create a variable named ..count... You can get the same graph with

p + geom_bar(stat="bin") 

In newer versions of ggplot2, one can also use the stat function instead of the enclosing .., so aes(y = ..count..) becomes aes(y = stat(count)).

like image 155
Brian Diggs Avatar answered Sep 18 '22 14:09

Brian Diggs