Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

..level.. in ggplot2 contour plot

I find this variable a little confusing, for example, from the docs:

require(ggplot2)
require(reshape2)
volcano3d <- melt(volcano) 
names(volcano3d) <- c("x", "y", "z") 
v <- ggplot(volcano3d, aes(x, y, z = z)) 
v1 = v +  stat_contour(aes(colour=..level..,size=..level..)) 

Why can't I use this:

v2 = v +  stat_contour(aes(colour=as.factor(z),size=as.factor(z))) 
like image 245
qed Avatar asked Oct 30 '13 16:10

qed


1 Answers

From Hadley Wickham's A Layered Grammar of Graphics, page 21, the .. .. is used because the aesthetic (in this case, the levels of the contours) is not present in the original dataset, but instead is calculated by the contour statistic.

The two dots are a visual indicator highlighting that variable is not present in the original data, but has been computed by the statistic.

You can't use colour=as.factor(z) or size=as.factor(z) because the graphic doesn't use z, but instead uses a statistical transformation of it - namely, ..level..

like image 87
Nick Avatar answered Oct 02 '22 15:10

Nick