Подтвердить что ты не робот

Специальные переменные в ggplot (..count..,..density.. и т.д.)

Рассмотрим следующие строки.

p <- ggplot(mpg, aes(x=factor(cyl), y=..count..))

p + geom_histogram()   
p + stat_summary(fun.y=identity, geom='bar')

Теоретически, последние два должны приводить к одному и тому же сюжету. На практике stat_summary терпит неудачу и жалуется, что требуемая эстетика отсутствует.

Почему я не могу использовать ..count.. в stat_summary? Я не могу найти нигде в документации docs о том, как использовать эти переменные.

4b9b3361

Ответ 1

Развернув комментарий @joran, специальные переменные в ggplot с двойными точками вокруг них (..count.., ..density.. и т.д.) Возвращаются при преобразовании stat исходного набора данных. Эти конкретные возвращаются stat_bin который неявно geom_histogram (обратите внимание в документации, что значение аргумента stat по умолчанию - "bin"). Ваш второй пример вызывает другую функцию stat, которая не создает переменную с именем ..count.. Вы можете получить тот же график с

p + geom_bar(stat="bin")

В более новых версиях ggplot2 можно также использовать функцию stat вместо вмещающего .., поэтому aes(y =..count..) становится aes(y = stat(count)).