[R] trellis plot

Sebastián Daza sebastian.daza at gmail.com
Mon Mar 26 18:09:22 CEST 2012


Thank you Peter. The problem with you solution is that it doesn't
represent the actual values of disruption. Look this example:

person  <- rep(1:2, each=4)
income  <- c(100, 120, 150, 200, 90, 100,120, 150)
disruption  <- c(0,0,0,1,0,1,1,0)
time  <- rep(c(1:4),2)
dat  <- as.data.frame(cbind(person,time, income, disruption))

mycols <- c(2, 5)
library(lattice)
xyplot(income~time|as.factor(person),data=dat,
       type=c("p","g","o"), col.line="black", col.symbol =
mycols[dat$disruption+1],
       xlab="Time",
       ylab="Familiar Income")

I am looking for a way to get the colors of dots according to actual
disruption values, and at the same time to draw the lines between all
dots for each person. Thank you!


>>>
>>> Hi everyone,
>>> I am just trying to figure out how to do a xyplot where in addition to
>>>  dots and lines I can change dots' colors according to an individual
>>> variable (e.g., marital disruption across time, a dummy 0/1). When I
>>> use "groups" specification (see below), I get two different lines for
>>> each individual based on groups, and what I want is to get one line
>>> connecting dots, and different dots' colors according to marital
>>> disruption.
>>>
>>> Any ideas about how to do that?
>>>
>>> person<- rep(1:2, each=4)
>>> income<- c(100, 120, 150, 200, 90, 100,120, 150)
>>> disruption<- rep(c(0,1), 4)
>>> time<- rep(c(1:4),2)
>>> dat<- as.data.frame(cbind(person,time, income, disruption))
>>>
>>>
>>> library(lattice)
>>> xyplot(income~time|as.factor(person),data=dat,
>>>        type=c("p","g","o"), col.line="black",
>>>        xlab="Time",
>>>        ylab="Familiar Income")
>>>
>>> # I just want to change dots' colors according to disruption, not to
>>> get two different lines:
>>>
>>> xyplot(income~time|as.factor(person),data=dat,
>>>        type=c("p","g","o"), col.line="black", groups=disruption,
>>>        xlab="Time",
>>>        ylab="Familiar Income")
>>>
>>
>> If I understand correctly what you're after, try adding the
>> 'col.symbol' argument instead of the 'groups' argument.
>>
>>     col.symbol = disruption + 1
>>
>> or, better, for arbitrary colours:
>>
>>    mycols <- c(2, 5)
>>    xyplot(....,
>>           col.symbol = mycols[disruption + 1],
>>           ....)
>>
>> Peter Ehlers
>>
>>>
>>>
>>> Thank you in advance!
>>>
>>
>
>
>
> --
> Sebastián Daza



-- 
Sebastián Daza



More information about the R-help mailing list