Wiem, że mogę użyć panel.xyarea
z kratownicy, aby wypełnić obszar działki dowolnym kolorem. Bez definiowania type
argumentu w xyplot
, takie nadzienie będzie śledzić trasę domyślnie type="p"
:Wypełnij obszar, aby dopasować linie do różnych argumentów "typu" w kratownicy
library(lattice)
library(latticeExtra)
data <- data.frame(time=1:24,value=rnorm(24))
xyplot(value~time, data,
panel=function(x,y,...){
panel.xyarea(x,y,...)
panel.xyplot(x,y,...)})
Ten działek zarówno panel.xyarea
i punkty pochodzących z domyślnie type="p"
w panel.xyplot
. Teraz problem pojawia się, gdy chcę zmienić type
o spiskowanie linii, na przykład co krok funkcję type="S"
:
xyplot(value~time, data, type="S",
panel=function(x,y,...){
panel.xyarea(x,y,...)
panel.xyplot(x,y,...)}
Jak widać na powyższym przykładzie, panel.xyarea
nie wypełnia obszar pod nową funkcją kroku, ale zamiast tego kreśli oba obszary zachodzące na siebie. Nie zmienia niczego, jeśli przeniesię type="S"
do panel.xyarea
- w rzeczywistości nie rejestruje on w ogóle argumentu i wątki, ponieważ nie byłoby tam.
Czy istnieje sposób mogę to ominąć i mieć panel.xyarea
wypełnić swoje działki, niezależnie od typu zdefiniować - bądź to krok funkcję (type="S"
), less (type="smooth"
) lub regresji (type="r"
)? A może w takim kontekście jest coś lepszego niż panel.xyarea
?
Nie, nie ma prostego i w pełni ogólnego sposobu wykonania tej czynności (bez modyfikowania wielu różnych ** funkcji ** kratownicy). Czy jesteś zainteresowany nie do końca ogólnymi (ale prostymi) rozwiązaniami dla poszczególnych wartości 'type ='? –
Jasne, zacznijmy gdzieś, strzelamy @Josh –
OK, przygotuję kilka szybkich przykładów dla 'type =" S "' i 'type =" smooth "'. –