przy użyciu xyplot
z pakietu lattice
, planuję szereg czasowy na przestrzeni wielu lat. Chciałbym dodać zacieniony obszar na niektóre z tych lat, aby wskazać, że ten okres był "wyjątkowy" (np. Wojna).Jak uzyskać cieniowane tło w Xyplot w R?
Proszę, przepraszam, jeśli to trywialne, ale nie mogłem wymyślić, jak to zrobić, więc byłbym szczęśliwy, gdyby ktoś mógł mi pomóc, lub przynajmniej wskazać mi właściwy kierunek. Myślę, że moim głównym problemem jest to, że tak naprawdę nie wiem, jak podejść do tego problemu. Nadal jestem względnie nowy dla R, a zwłaszcza dla lattice
.
tu minimalny przykład:
xyplot(rnorm(100) ~ 1:100, type="l", col="black")
W tym samym wykresie, ja jak kolor tła (od powiedzmy x
-values o 45, aż do 65) od dołu do góry kreślenia być zacienionym, powiedzmy, jasnoszarym.
Należy zauważyć, że rozwiązania, które znalazłem do tej pory korzystać base
grafiki i polygon
-function, ale intencją jest cieniu obszar pod lub nad krzywą, która różni się od tego, co chciałbym robić. Nie chcę "tylko" zacieniać obszaru poniżej linii lub powyżej linii. Zamiast tego chciałbym zacienić całe tło dla danego przedziału czasowego.
Jeśli ktokolwiek mógłby mi pomóc, byłbym bardzo wdzięczny!
Wygląda raczej potężnie. 'y = x> 45 & y <0' powoduje wyświetlenie szarego pasma po lewej stronie x = 45, ale tylko wtedy, gdy y <0. Myślę, że zdecydowałeś się użyć 'layer_', ponieważ ma on domyślną wartość' under = TRUE'? –
Po prostu wydawało się dość sprytne i ggplot2-ish, ale na przemian można go używać w konwencjonalnej funkcji panelu: 'xyplot (rnorm (100) ~ x, typ =" l ", col =" czarny ", panel = funkcja (x, ...) {panel.xblocks (x, x> 20, col = "lightgrey"); panel.xyplot (x, ...)}) '. –