2011-01-19 6 views
25

mam kilka sygnałów próbkowane w czasie, które wykreślić w R z zastosowaniem ciągłej linii. Dodatkowo chciałbym podkreślić kilka konkretnych przedziałów czasowych na działce.Jak wyróżnić zakresy czasu na działce?

My Obecnie stosowane podejście do opracowania pełnej wysokości przezroczyste prostokąty o odpowiedniej szerokości i położenia poziomego, które odpowiadają zakres czasu. Myślę, że jest to dobra reprezentacja, ponieważ wyraźnie oddziela punkty wewnątrz zakresu od tych poza nią; ale czy są lepsze?


A druga, praktyczna część pytania. Teraz jestem kreślenia sygnały tak:

p <- ggplot(data=gs, mapping=aes(x=frameno, y=value, col=variable)) + 
     geom_line() 
p 

Próbowałem narysować prostokąt alfa mieszane ręcznie:

p + geom_rect(aes(xmin=600, xmax=650, ymin=-3, ymax=3), 
       colour=alpha("grey20", 0.5), fill.alpha=0.5) 

- ale bez powodzenia tej pory. Jakieś wskazówki?

Odpowiedz

45

myślę prostokąty rysunek tylko działa dobrze, nie mam pojęcia o lepszym rozwiązaniem, jeśli a simple vertical line or lines nie wystarczą.

i po prostu użyć alpha=0.5 zamiast fill.alpha=0.5 do wydania przejrzystości także określającego inherit.aes = FALSE w geom_rect(). Na przykład. dokonywania wykres z danymi diamentów:

p <- ggplot(diamonds, aes(x=price, y=carat)) + 
    geom_line(aes(color=color)) 

rect <- data.frame(xmin=5000, xmax=10000, ymin=-Inf, ymax=Inf) 
p + geom_rect(data=rect, aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax), 
       color="grey20", 
       alpha=0.5, 
       inherit.aes = FALSE) 

alt text

Należy również pamiętać, że ymin i ymax może być ustawiony na -Inf i Inf problemów.

+1

Próbowałem 'alfa = 0.5', że nie działa zbyt. Rysuje stały prostokąt z nieprzezroczystym wypełnieniem. '(' – ulidtko

+0

@ulidtko:.... Masz rację, określając, że nowy data.frame jest w użytku została pominięta dodałem konkretny przykład, mam nadzieję, że trzeba coś takiego – daroczig

+0

Dokładnie to, co potrzebne Dziękuję – ulidtko