..уровень.. в контурной плоскости ggplot2

Я нахожу эту переменную немного запутанной, например, из документов:

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

Почему я не могу использовать это:

v2 = v +  stat_contour(aes(colour=as.factor(z),size=as.factor(z))) 

Ответ 1

От Hadley Wickham Слоистая грамматика графики, стр. 21, .. .. используется потому, что эстетический (в данном случае уровни контуров) отсутствует в исходном наборе данных, но вместо этого вычисляется по контурной статистике.

Две точки - это визуальный индикатор, указывающий, что переменная отсутствует в исходных данных, но была вычислена по статистике.

Вы не можете использовать colour=as.factor(z) или size=as.factor(z), потому что в графике не используется z, а вместо этого используется статистическое преобразование, а именно ..level..