2015-04-20 10 views
6

Ich habe eine kleine Tabelle mit zusammenfassenden Daten mit der Odds Ratio, oberen und unteren Konfidenzgrenzen für vier Kategorien, mit sechs Stufen innerhalb jeder Kategorie. Ich möchte ein Diagramm mit ggplot2 erstellen, das dem üblichen ähnelt, das erstellt wird, wenn Sie ein lm angeben und es ist se, aber ich möchte, dass R nur die vordefinierten Werte verwendet, die ich in meiner Tabelle habe. Ich habe es geschafft, das Liniendiagramm mit Fehlerbalken zu erstellen, aber diese überschneiden sich und machen es unklar. Die Daten sehen wie folgt aus:Hinzufügen von schattierten Konfidenzintervallen zum Liniendiagramm mit den angegebenen Werten

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 

Ich habe dies versucht:

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) 

und suchten nach einer geeigneten Antwort ein hübsches Grundstück zu erstellen, aber ich bin flummoxed!

Jede Hilfe sehr geschätzt!

+0

Leider werden die Daten herauskam alle jumbled - seine vermeintliche 5 Spalten sein; Intervall, ODER, Drogen, senken ein oberes. – user4575913

+0

Willkommen bei SO! Zuerst können Sie sehen, was ich bearbeitet habe, damit die Daten und der Code richtig aussehen. Zweitens meinen Sie wahrscheinlich "x = interval" anstelle von "x = days", da es in Ihren Daten keine "Tage" gibt. Drittens wäre es nett, ein Beispiel für die gewünschte Handlung zu geben (fügen Sie einfach einen Link hinzu und jemand mit genügend Wiederholungen wird es einbetten). – tonytonov

+0

Schau dir 'geom_ribbon' an – James

Antwort

7

Sie müssen die folgenden Zeilen:

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, das ist perfekt und so einfach! Vielen Dank! – user4575913

+0

Kein Problem, froh, Ihnen zu helfen! –

Verwandte Themen