Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I change the color of the header in a xyplot?

Tags:

r

lattice

I am using xyplot from the lattice package, and I want to change the color of hte header. Currently, it is an ugly light-orange color.

library(lattice)

x <- c(1:10, 1:10)
y <- c(10:1, 10:1)
z <- c(1:10, seq(1,20, by=2))
a = c(rep("one",10),rep("two",10))
DF <- data.frame(x, y, z, a)
xyplot(y ~ x | a, groups = z < 5, data = DF, col = c("black", "red"),
 pch=20, cex=0.3)
like image 797
Spurious Avatar asked Apr 09 '13 17:04

Spurious


1 Answers

You need to reset the contents of trellis.par.get()$strip.background$col.

To do this for a single plot, use the par.settings= argument:

xyplot(y ~ x | a, groups = z < 5, data = DF, col = c("black", "red"),
       pch = 20, cex = 0.3, 
       par.settings = list(strip.background=list(col="lightgrey")))

To more persistently reset the strip background color, use trellis.par.set():

trellis.par.set(strip.background=list(col="lightgrey"))

To see how you might have found this out yourself, try the following:

names(trellis.par.get())
trellis.par.get("strip.background")

Finally, for an example of more complicated (and aesthetically appalling) strip-background manipulations, see here.

like image 134
Josh O'Brien Avatar answered Oct 20 '22 15:10

Josh O'Brien