Проще, если вы отойдете от qplot ():
library(plyr)
library(ggplot2)
d.f <- data.frame(
grp = as.factor( rep( c("A","B"), each=40 ) ) ,
val = c( sample(c(2:4,6:8,12),40,replace=TRUE), sample(1:4,40,replace=TRUE) )
)
d.f <- arrange(d.f,grp,val)
d.f.ecdf <- ddply(d.f, .(grp), transform, ecdf=ecdf(val)(val) )
p <- ggplot( d.f.ecdf, aes(val, ecdf, colour = grp) )
p + geom_step()
Вы также можете легко добавить facet_wrap
для нескольких групп и xlab
/ ylab
для этикеток.*
d.f <- data.frame(
grp = as.factor( rep( c("A","B"), each=120 ) ) ,
grp2 = as.factor( rep( c("cat","dog","elephant"), 40 ) ) ,
val = c( sample(c(2:4,6:8,12),120,replace=TRUE), sample(1:4,120,replace=TRUE) )
)
d.f <- arrange(d.f,grp,grp2,val)
d.f.ecdf <- ddply(d.f, .(grp,grp2), transform, ecdf=ecdf(val)(val) )
p <- ggplot( d.f.ecdf, aes(val, ecdf, colour = grp) )
p + geom_step() + facet_wrap( ~grp2 )