От новичка до гуру: Курсы программирования на CyberDuff

Специальные переменные в 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 терпит неудачу и жалуется, что отсутствует необходимая эстетика y.

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

28.01.2013

  • Эти переменные возвращаются stat_bin, который вызывается geom_histogram, но не stat_summary (поскольку предполагается, что вы предоставляете свою собственную статистику), поэтому переменные недоступны. 29.01.2013

Ответы:


1

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

p + geom_bar(stat="bin")

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

28.01.2013
  • Я хотел бы выполнить арифметическую операцию (в данном случае сложение) между переменной ..count.. и переменной, определяемой пользователем (я сделал это с константами). К сожалению, ggplot2 не распознает имя переменной и выдает ошибку. Есть идеи, Брайан? 14.10.2014
  • @AleksandrBlekh Это должен быть новый вопрос, а не комментарий к ответу на старый вопрос. Навскидку, я не думаю, что это возможно. Переменная в вашем первичном data.frame будет иметь больше значений, чем преобразованная переменная ..count.., поэтому не будет возможности сопоставить их. Однако без более подробной информации и воспроизводимого примера (например, нового вопроса) я не могу точно ответить. 14.10.2014
  • Справедливо! Я подумал, что этот вопрос слишком мал и не стоит отдельной публикации. Я уже понял, что это невозможно, ваш комментарий также подтверждает это. Спасибо! 15.10.2014
  • Я бы очень хотел, чтобы geom_bar сгенерировал переменную ..density.., как это делает его двоюродная функция geom_histogram. 13.12.2016
  • Новые материалы

    Представляем Narwhal Technologies (Nrwl)
    6 декабря 2016 г. Маунтин-Вью, Калифорния С тех пор, как Виктор Савкин и я (Джефф Кросс) присоединились к команде Angular в Google на заре Angular 1, Angular продемонстрировал феноменальный..

    Путь AWS  — «Изучение машинного обучения — 10 начинающих ИИ и машинного обучения на AWS».
    Универсальный ресурсный центр для изучения искусственного интеллекта и машинного обучения. НОЛЬ или ГЕРОЙ, начните свое путешествие здесь. Получите решения и пройдите обучение у экспертов AWS...

    5 простых концепций Python, ставших сложными
    #заранее извините 1) Переменные x = 4 y = 5 Переменная в Python — это символическое представление объекта. После присвоения некоторого объекта переменной Python мы приобретаем..

    «Освоение вероятности: изучение совместной, предельной, условной вероятности и теоремы Байеса —…
    Виды вероятности: Совместная вероятность Предельная вероятность Условная вероятность Диаграмма Венна в вероятностях: В “Set Theory” мы создаем диаграмму Венна...

    Основы Spring: Bean-компоненты, контейнер и внедрение зависимостей
    Как лего может помочь нашему пониманию Когда мы начинаем использовать Spring, нам бросают много терминов, и может быть трудно понять, что они все означают. Итак, мы разберем основы и будем..

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..