utilizzando xyplot
dal pacchetto lattice
, tracciare una serie temporale su un numero di anni. Vorrei aggiungere un'area ombreggiata per alcuni di questi anni per indicare che questo periodo di tempo era "speciale" (ad esempio la guerra).Come ottenere sfondo ombreggiato in xyplot in R?
Si prega di scusarsi se questo è banale, ma non sono riuscito a capire come farlo, quindi sarei felice se qualcuno potesse darmi una mano o almeno indicarmi la giusta direzione. Penso che il mio problema principale sia che non so davvero come affrontare questo problema. Sono ancora relativamente nuovo a R e in particolare a lattice
.
Ecco un esempio minimo:
xyplot(rnorm(100) ~ 1:100, type="l", col="black")
Nella trama corrispondente, vorrei il colore dello sfondo (da dire x
-Valori di 45 fino a 65) dal basso verso l'alto dell'area di tracciato essere ombreggiato, diciamo, grigio chiaro.
Nota che le soluzioni che ho trovato finora usano base
grafica e il polygon
-funzione, ma l'intenzione è di ombreggiare l'area sotto o al di sopra di una curva, che è diverso da quello che vorrei fare. Non voglio "solo" voler ombreggiare l'area sotto la mia linea, o sopra la mia linea. Invece vorrei ombreggiare l'intero sfondo per un dato intervallo di tempo.
Se qualcuno potesse aiutarmi qui, sarei molto grato!
Sembra piuttosto potente. 'y = x> 45 & y <0' ti mette le bande grigie a sinistra di x = 45, ma solo dove y <0. Penso che tu abbia scelto di usare 'layer_' perché ha un valore predefinito' under = TRUE'? –
Sembrava piuttosto elegante e ggplot2-ish ma in alternativa si poteva usarlo in una funzione convenzionale del pannello: 'xyplot (rnorm (100) ~ x, type =" l ", col =" black ", panel = function (x, ...) {panel.xblocks (x, x> 20, col = "lightgrey"); panel.xyplot (x, ...)}) '. –