2013-05-09 11 views
6

Ręcznie stworzyłem zestaw danych dotyczących długości życia z towarzyszącymi przedziałom ufności 95%. Planuję je w skali czasowej, ale wolę, aby paski były zacieniowane, a nie kropkowane. Wyświetlany kod:Cieniowanie przedziałów ufności ręcznie za pomocą ggplot2

p1 = ggplot() 
p2 = p1 + geom_line(aes(x=pl$Time, y=pl$menle), colour="blue") 
p3 = p2 + geom_line(aes(x=pl$Time, y=pl$menlelb), colour="blue", lty="dotted") 
p4 = p3 + geom_line(aes(x=pl$Time, y=pl$menleub), colour="blue", lty="dotted") 

Czy istnieje prosty sposób na odcień interwału, a nie tylko linie? Jeśli brakuje mi czegoś prostego, przepraszam z góry, ale nie mogę znaleźć niczego, co wskazywałoby na prosty sposób robienia tego.

+4

Wykorzystanie 'geom_ribbon' zamiast. – joran

+2

Proszę podać dane dla innych osób, aby wypróbować swój kod (lub użyć danych, które są dostępne dla R). – Arun

+1

Zauważ, że jeśli używasz '$' w ggplot, prawdopodobnie robisz to źle - zwane także powiedzeniem: "ggplot2 nie dba o' $ ', pobiera na" danych ". – baptiste

Odpowiedz

25

Byłoby pomocne, gdybyś dostarczył swoje własne dane, ale myślę, że następujące rzeczy robią to, o co prosisz.

pierwsze, stworzyć jakiś manekin dane:

##I presume the lb and ub are lower/upper bound 
pl = data.frame(Time = 0:10, menle = rnorm(11)) 
pl$menlelb = pl$menle -1 
pl$menleub = pl$menle +1 

Następnie należy utworzyć wykres. Zacieniony obszar jest tworzony przy użyciu geom_ribbon:

ggplot(pl, aes(Time)) + 
    geom_line(aes(y=menle), colour="blue") + 
    geom_ribbon(aes(ymin=menlelb, ymax=menleub), alpha=0.2) 

enter image description here

+0

Jeśli wykreślić dwa lub więcej zestawów geom_line (...) + geom_ribbon (...) dla tych samych x ale różnych y, ymin, ymax, jak mogę dodać legendę/etykietę? – jf328

Powiązane problemy