[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