2011-06-14 12 views
8

Ho un paio di funzioni di densità empirica cumulativa che vorrei tracciare l'una sull'altra per illustrare le differenze nelle due curve. Come è stato sottolineato in a previous question, la funzione per disegnare l'ECDF è semplicemente plot(Ecdf()) E come ho letto la pagina di manuale fine, ho deciso che posso tracciare più ECDFs uno sopra l'altro utilizzando qualcosa di simile al seguente:R: Tracciare un ECDF sopra un altro in diversi colori

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

Tuttavia le mie curve a volte si sovrappongono un po 'e può essere difficile dire quale è quale, proprio come l'esempio di cui sopra, che produce questo grafico:

enter image description here

mi piacerebbe davvero per rendere il colore di questi due CDF differenti. Non riesco a capire come farlo, comunque. Qualche consiglio?

+1

È ora di passare da Guiness al caffè, JD. C'è un argomento 'col =', vedi la mia risposta modificata. –

risposta

12

Se la memoria serve, l'ho fatto in passato. Come ricordo, era necessario ingannarlo come Ecdf() è così dannatamente paramterizzato. Penso che in help(ecdf) si accerti che si tratta solo di una trama di funzioni di passaggio, quindi è possibile stimare due o più ecdf, tracciare uno e quindi annotare tramite lines().

Modifica scopre che è così facile come

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

come pagina di aiuto afferma chiaramente l'argomento col=. Ma ho anche trovato alcuni scriptlet in cui ho usato esplicitamente plot.stepfun().

+2

È chiaramente indicato nei manuali, che ho pensato di leggere. Ovviamente il mio bicchiere di Guinness stava bloccando quella parte dello schermo. –

+0

Wow, fanno gli occhiali da 64 once? –

+0

Quando sono atterrato a DUB mi hanno agganciato a un sacchetto IV di Guinness. Era la borsa IV che bloccava il mio schermo. –

7

È possibile aggiungere ciascuna curva una alla volta (ciascuna con il proprio stile), ad es.

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

Si può fare anche un'operazione come 'col',' lty', ... sono tutti vettorizzati. –

Problemi correlati