Логарифмическая шкала ggplot2 по оси x поднимает мое ядро ​​geom_density

СтекОверфлауэрс! Я пытаюсь проиллюстрировать сравнение распределений по шкале log10 с данными, которые выглядят примерно так:

df <- data.frame( grp = c( rep('A',1e5), rep('B',1e5), rep('C',1e5) ),
                  qty = c( rpois(1e5,5), rpois(1e5,25), rpois(1e5,50) ) + 1 )

Моя проблема (я думаю) в том, что ядро ​​Гаусса по умолчанию для geom_density не обрабатывает это масштабировать хорошо. Это производит этот зубчатый вид, который не так гладок.

library(ggplot2)

ggplot(df, aes(qty, fill=grp)) + 
  scale_x_log10(limits=c(1,100), breaks=c(1:10,25,50)) +
  geom_density(alpha=.3)+
  ylab("Density") + xlab("Count of Things") +
  ggtitle("Density of Quantity of Things by Group") 

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

(Я добавил галочки, чтобы прояснить проблему. Их удаление ничего не дает.)

Я думаю, что ищу ядро ​​с дисперсией, которая экспоненциально уменьшается с x, так что его ширина постоянна в log-x... возможно ли это?

Я также пробовал geom_histogram(...stat='density'), который делает то же самое. Я также попробовал + coord_trans(xtrans="log10") вместо + scale_log10(), но это не решило проблему и сделало что-то странное с осью Y. Спасибо!


person C8H10N4O2    schedule 19.07.2015    source источник
comment
geom_density(alpha=.3, adjust=5) выглядит лучше, но я не статистик   -  person baptiste    schedule 19.07.2015
comment
@baptiste Спасибо за это, что привело меня к этому связанный вопрос. Я бы принял ваш комментарий-ответ как жизнеспособный обходной путь при отсутствии более конкретного решения. Властью, данной мне Интернетом, я объявляю вас статусным человеком. Встань.   -  person C8H10N4O2    schedule 19.07.2015