2011-06-14 16 views
8

Tengo un par de funciones de densidad empírica acumulativa que me gustaría trazar una encima de la otra para ilustrar las diferencias en las dos curvas. Como se ha señalado in a previous question, la función de llamar la ECDF es simplemente plot(Ecdf()) Y al leer la página del manual fina, que determinó que puedo trazar varios ECDFs una encima de la otra usando algo como lo siguiente:R: Trazando un ECDF encima de otro en diferentes colores

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

Sin embargo mis curvas a veces se superponen un poco y puede ser difícil saber cuál es cuál, al igual que el ejemplo anterior que produce este gráfico:

enter image description here

realmente me gustaría hacer que el color de estos dos CDF diferentes. Sin embargo, no puedo entender cómo hacerlo. ¿Algun consejo?

+1

Tiempo para cambiar de Guiness a café, JD. Hay un argumento 'col =', mira mi respuesta editada. –

Respuesta

12

Si la memoria sirve, he hecho esto en el pasado. Según recuerdo, necesitabas engañarlo ya que el Ecdf() está tan paramétrico. Creo que en help(ecdf) se insinúa que es solo un gráfico de funciones paso a paso, por lo que puedes estimar dos o más ecdfs, trazar uno y luego anotar a través del lines().

Edición resulta que es tan fácil como

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

como la página de ayuda establece claramente el argumento col=. Pero también he encontrado algunos scriptlets donde usé plot.stepfun() explícitamente.

+2

Está CLARAMENTE indicado en los manuales, que pensé que leí. Obviamente, mi copa de Guinness estaba bloqueando esa parte de la pantalla. –

+0

Wow, ahora hacen vasos de 'gulp' de 64oz? –

+0

Cuando aterricé en DUB me engancharon a una bolsa IV de Guinness. Fue la bolsa de suero bloqueando mi pantalla. –

7

Puede agregar cada curva de a una por vez (cada una con su propio estilo), p.

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

También puede hacer una operación ya que 'col',' lty', ... están todos vectorizados. –

Cuestiones relacionadas