R: Нанесение одного ECDF поверх другого в разных цветах - PullRequest
8 голосов
/ 14 июня 2011

У меня есть пара кумулятивных эмпирических функций плотности, которые я хотел бы нанести друг на друга, чтобы проиллюстрировать различия в двух кривых.Как было указано в предыдущем вопросе , функция рисования ECDF просто plot(Ecdf()) И когда я прочитал прекрасную страницу руководства, я решил, что могу нанести несколько ECDF друг на друга, используянапример, следующее:

require( Hmisc )
set.seed(3)
g <- c(rep(1, 20), rep(2, 20))  
Ecdf(c( rnorm(20), rnorm(20)), group=g)

Однако мои кривые иногда немного перекрываются, и может быть трудно определить, что есть что, точно так же, как и в приведенном выше примере, который создает этот график:1010 *

Мне бы очень хотелось, чтобы цвет этих двух CDF был разным.Однако я не могу понять, как это сделать.Любые советы?

Ответы [ 2 ]

12 голосов
/ 14 июня 2011

Если память не изменяет, я делал это в прошлом. Насколько я помню, вам нужно было обмануть это, так как Ecdf() чертовски парамтеризован. Я думаю, что в help(ecdf) это намекает на то, что это просто график пошаговых функций, так что вы можете оценить два или более ecdf, построить один, а затем аннотировать с помощью lines().

Изменить Оказывается, это так же просто, как

  R> Ecdf(c(rnorm(20), rnorm(20)), group=g, col=c('blue', 'orange'))

, поскольку на странице справки четко указан аргумент col=. Но я также нашел несколько скриптлетов, где я явно использовал plot.stepfun().

7 голосов
/ 14 июня 2011

Вы можете добавлять каждую кривую по одной (каждая со своим стилем), например,

Ecdf(rnorm(20), lwd = 2)
Ecdf(rnorm(20),add = TRUE, col = 'red', lty = 1)
...