Есть несколько сообщений о построении кумулятивных плотностей в ggplot. В настоящее время я использую принятый ответ Более простой способ построения кумулятивного распределения частот в ggplot? для построения моих совокупных показателей. Но это решение предполагает предварительное вычисление значений заранее.
Здесь я ищу чистое решение ggplot. Покажите, что я до сих пор:
x <- data.frame(A=replicate(200,sample(c("a","b","c"),1)),X=rnorm(200))
ggplot stat_ecdf
Я могу использовать ggplot stat_ecdf
, но он отображает только кумулятивные плотности:
ggplot(x,aes(x=X,color=A)) + geom_step(aes(y=..y..),stat="ecdf")
Я хотел бы сделать что-то вроде следующего, но это не работает:
ggplot(x,aes(x=X,color=A)) + geom_step(aes(y=..y.. * ..count..),stat="ecdf")
cumsum
и stat_bin
Я нашел идею об использовании cumsum
и stat_bin
:
ggplot(x,aes(x=X,color=A)) + stat_bin(aes(y=cumsum(..count..)),geom="step")
Но, как вы можете видеть, следующий цвет не начинается с y=0
, но заканчивается последний цвет.
Что я прошу
Что я хотел бы иметь от лучшего до худшего:
-
В идеале простое исправление для неработающего
ggplot(x,aes(x=X,color=A)) + geom_step(aes(y=..y.. * ..count..),stat="ecdf")
-
Более сложный способ использования
stat_ecdf
со счетами. - Последним вариантом было бы использовать подход
cumsum
, так как он дает худшие (закодированные) результаты.