2012-02-18 8 views
5

Desidero aggiungere intervallo di confidenza del 99% e del 95% in XYplot.xyplot con intervallo di confidenza (diagramma di casella e wisker) aggiunto in r

seguito è riportato dati:

X <- 1:20 
Y <- c(0.5, 1.4, 2.3, 3.4, 4.5, 
     3.3, 3.0, 2.1, 1.5, 0, 
     0, 3.4, 4.5, 6.7, 5.3, 2.8, 
     0.5, 3.4, 3.5, 3.7) 
mydata <- data.frame (X, Y) 

voglio identificare il valore massimo di Y ed il corrispondente valore X è la posizione di mediano scatola e plot whisker. Ogni volta che il valore di Y declina di 1 punto (a sinistra oa destra) è l'intervallo di confidenza del 99% (sarà all'interno della scatola) e ogni volta che la Y declina a 2 (sia a sinistra che a destra), le posizioni corrispondenti in x saranno rappresentate dal baffo.

trama desiderata:

enter image description here

Spiegazione. enter image description here

corrispondente valore x max (Y) = 6.7 corrispondente valore x a scatola sinistra = 6,7 - 1, con scatola destra = 6,7 - 1 corrispondente valore x a baffo sinistra = 6,7 - 2, baffo destro = 6,7 - 2

risposta

1

Il seguente diagramma dovrebbe iniziare. Usa i rettangoli piuttosto che un bwplot e inoltre non fa interpolazione.

Creare i dati:

library(ggplot2) 

dat <- data.frame(
    x = 1:20, 
    y = c(0.5, 1.4, 2.3, 3.4, 4.5, 3.3, 3.0, 2.1, 1.5, 0, 0, 3.4, 4.5, 6.7, 5.3, 2.8, 0.5, 3.4, 3.5, 3.7) 
) 

scrivere una funzione che restituisce i 5 punti desiderati:

getRange <- function(x, a=1, b=2){ 
    maxy <- max(x) 
    xMax <- which.max(x) 
    x2 <- max(which(x[1:xMax] <= (maxy-a))) 
    x1 <- max(which(x[1:x2] <= (maxy-b))) 
    x3 <- xMax + min(which(x[-(1:xMax)] < (maxy+a))) 
    x4 <- x3 + min(which(x[-(1:x3)] < (maxy+b))) 
    data.frame(x1=x1, x2=x2, max=xMax, x3=x3, x4=x4) 
} 

ottenere i valori gamma e la trama:

rr <- getRange(dat$y, 1, 3) 

ggplot(dat, aes(x, y)) + geom_line() + geom_point() + 
    geom_rect(data=rr, aes(xmin=x2, xmax=x3, NULL, NULL), 
       ymin=-Inf, ymax=Inf, fill="blue", alpha=0.25) + 
    geom_rect(data=rr, aes(xmin=x1, xmax=x4, NULL, NULL), 
       ymin=-Inf, ymax=Inf, fill="blue", alpha=0.25) 

enter image description here

+0

possiamo disegnare la scatola come poligono e wshiker come segmento di linea nella grafica r di base _ una volta che conosciamo già i punti dati? – SHRram

Problemi correlati