2015-04-20 15 views
6

Ho una piccola tabella di dati di riepilogo con il rapporto di probabilità, i limiti di confidenza superiore e inferiore per quattro categorie, con sei livelli all'interno di ogni categoria. Mi piacerebbe produrre un grafico usando ggplot2 che assomigli al solito creato quando si specifica un lm ed è di per sé, ma mi piacerebbe R solo per usare i valori pre-specificati che ho nella mia tabella. Sono riuscito a creare il grafico a linee con barre di errore, ma queste si sovrappongono e rendono poco chiaro. I dati appaiono così:Come aggiungere intervalli di confidenza ombreggiati al grafico a linee con i valori specificati

interval OR Drug lower upper 
14 0.004 a 0.002 0.205 
30 0.022 a 0.001 0.101 
60 0.13 a 0.061 0.23 
90 0.22 a 0.14 0.34 
180 0.25 a 0.17 0.35 
365 0.31 a 0.23 0.41 
14 0.84 b 0.59 1.19 
30 0.85 b 0.66 1.084 
60 0.94 b 0.75 1.17 
90 0.83 b 0.68 1.01 
180 1.28 b 1.09 1.51 
365 1.58 b 1.38 1.82 
14 1.9 c 0.9 4.27 
30 2.91 c 1.47 6.29 
60 2.57 c 1.52 4.55 
90 2.05 c 1.31 3.27 
180 2.422 c 1.596 3.769 
365 2.83 c 1.93 4.26 
14 0.29 d 0.04 1.18 
30 0.09 d 0.01 0.29 
60 0.39 d 0.17 0.82 
90 0.39 d 0.2 0.7 
180 0.37 d 0.22 0.59 
365 0.34 d 0.21 0.53 

Ho provato questo:

limits <- aes(ymax=upper, ymin=lower) 
dodge <- position_dodge(width=0.9) 
ggplot(data, aes(y=OR, x=days, colour=Drug)) + 
    geom_line(stat="identity") + 
    geom_errorbar(limits, position=dodge) 

e cercato una risposta adeguata per creare una trama abbastanza, ma sono sconcertato!

Qualsiasi aiuto molto apprezzato!

+0

spiacenti i dati è venuto fuori tutto confuso - la sua doveva essere 5 colonne; intervallo, OR, farmaco, abbassare una tomaia. – user4575913

+0

Benvenuti in SO! Innanzitutto, puoi vedere cosa ho modificato per rendere i dati e il codice in ordine. In secondo luogo, probabilmente si intende 'x = interval' invece di' x = days' dato che non ci sono 'days' nei dati. Terzo, sarebbe bello dare un esempio della trama desiderata (basta aggiungere un link e qualcuno con un rappresentante sufficiente lo incorpori). – tonytonov

+0

Guarda a 'geom_ribbon' – James

risposta

7

sono necessari i seguenti righe:

p<-ggplot(data=data, aes(x=interval, y=OR, colour=Drug)) + geom_point() + geom_line() 
p<-p+geom_ribbon(aes(ymin=data$lower, ymax=data$upper), linetype=2, alpha=0.1) 

enter image description here

+0

Oh è perfetto e così semplice! Grazie! – user4575913

+0

Nessun problema, felice di aiutarti! –

Problemi correlati