Гистограмма плотности ggplot2 с настраиваемыми краями ячейки

Я могу построить гистограмму плотности, и я могу построить обычную гистограмму с настраиваемыми интервалами, но не то и другое вместе. Вот моя попытка:

library(ggplot2)

vals = c(2.6, 5.2, 4.1, 6.9, 5.7, 5.2, 4.4, 5.5, 6.3, 6.1, 4.7, 1.4)
myplot = qplot(vals, geom = 'blank') +   
         geom_line(aes(y = ..density..), stat = 'density',
                   colour = 26, size = 2, alpha = .6) +                     
         geom_histogram(aes(y = ..density..), binwidth = 1,
                        fill = 28, alpha = 0.3) +
         stat_bin(breaks=seq(-.5,8.5,1)) + xlim(-1, 9)

print(myplot)

Если вы удалите термин stat_bin, гистограмма будет правильно отображаться как гистограмма плотности, но с местоположениями ячеек по умолчанию. Добавьте член stat_bin, и интервалы верны, но это больше не гистограмма плотности. Есть идеи, как заставить работать оба?


person user1956609    schedule 12.11.2013    source источник


Ответы (1)


Вы можете добавить аргумент breaks= к geom_histogram(), чтобы установить свои собственные точки останова (вам не нужно использовать geom_histogram() и stat_bin() вместе, потому что geom_histogram() использует stat_bin() для получения результата).

qplot(vals, geom = 'blank') +   
  geom_line(aes(y = ..density..), colour=26, stat = 'density', size = 2, alpha = .6) + 
  geom_histogram(aes(y = ..density..), fill = 28, alpha = 0.3, breaks=seq(-.5,8.5,1))

введите описание изображения здесь

person Didzis Elferts    schedule 12.11.2013
comment
Если это именно то, что вы искали, могли бы вы принять этот ответ? Щелкните зеленую галочку под кнопками голосования. - person Andy Clifton; 27.11.2013