[R] lme: Plot colours based on variable?

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Tue Dec 2 17:26:10 CET 2025


   I often find custom-built lattice-based plot methods inscrutable and 
end up falling back to figuring out how to get what I want directly with 
lattice.

   I haven't figured out how to get the label 'Diet' on the legend, but 
otherwise this works pretty well ...


library(lattice)
library(nlme)
labs <- paste(attr(BodyWeight, "labels"),
               attr(BodyWeight, "units"))
xyplot(weight ~ Time | Rat, type = c("p", "r"),
        data = BodyWeight,
        layout = c(NA, 1),  ## enforce 1 row
        groups = Diet,
        auto.key = TRUE,
        pch = 19,
        xlab = labs[1],
        ylab = labs[2],
        par.settings = list(superpose.line = list(col = "black")))


On 12/2/25 06:06, Duncan Murdoch wrote:
> On 2025-12-02 3:39 a.m., Leo Mada via R-help wrote:
>> Dear R-Users,
>>
>> Is there a quick solution to plot colours based on a variable?
>>
>> I tried something like this:
>>
>> library(nlme)
>>
>> plot(BodyWeight)
>>
>> # Does NOT work!
>> colDiet = c(2:4)[BodyWeight$Diet]
>> plot(BodyWeight, col = colDiet)
>>
>> # Wastes space
>> rat.fit = lme(weight ~ Time + Diet, data = BodyWeight, random = ~ 
>> Time|Rat)
>> plot(rat.fit, weight ~ Time | Rat + Diet)
>>
>> Is there a quick way to base the colour on the Diet variable?
> 
>    plot(BodyWeight, ...)
> 
> dispatches to plot.nfnGroupedData(), which uses lattice::xyplot() 
> graphics rather than base graphics. I don't know lattice well enough to 
> answer your question, but maybe this will give you a hint...
> 
> Duncan Murdoch
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide https://www.R-project.org/posting- 
> guide.html
> and provide commented, minimal, self-contained, reproducible code.

-- 
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Associate chair (graduate), Mathematics & Statistics
Director, School of Computational Science and Engineering
* E-mail is sent at my convenience; I don't expect replies outside of 
working hours.



More information about the R-help mailing list