How to set strip label font size in lattice graphics in R

15,003

Try this (good work on supplying an example):

barchart(choice ~ yes+no+not.app|group, data=data, 
     par.strip.text=list(cex=2),
     stack=TRUE, col=c("green","red","blue"), 
     xlim=c(0,100), layout=c(3,1),
     scales=list(cex=c(1.4,1.4), alternating=3),
     xlab=list(label="Percent of Respondents", fontsize=20), 
     main="")

To see more about how to manage the strip features type : ?strip.default There are other levers to throw in strip.custom. Also see the latticeExtra package that has the capacity to put strips on the sides with useOuterStrips.

Share:
15,003
eipi10
Author by

eipi10

Joel Schwartz Contact: [email protected]

Updated on June 18, 2022

Comments

  • eipi10
    eipi10 almost 2 years

    I've created a lattice plot with three panels. I can control the font size for the axis and tick labels, but I haven't been able to figure out how to increase the font size of the strip labels. Here's a concrete example:

    # See below for the fake data to run this code
    library(lattice)
    barchart(choice ~ yes+no+not.app|group, data=data, 
             stack=TRUE, col=c("green","red","blue"), 
             xlim=c(0,100), layout=c(3,1),
             scales=list(cex=c(1.4,1.4), alternating=3),
             xlab=list(label="Percent of Respondents", fontsize=20), 
             main="")
    

    Here's the graph this code produces. Note how all the fonts are nice and big except for the strip labels ("Group 1", "Group 2", "Group 3"). I've been fishing around R-help and Stack Overflow, but haven't been able to work this one out. Does anyone know the magic incantation?

    enter image description here

    data = structure(list(choice = c("Choice 1", "Choice 1", "Choice 1", 
    "Choice 2", "Choice 2", "Choice 2", "Choice 3", "Choice 3", "Choice 3", 
    "Choice 4", "Choice 4", "Choice 4"), group = c("Group 1", "Group 2", 
    "Group 3", "Group 1", "Group 2", "Group 3", "Group 1", "Group 2", 
    "Group 3", "Group 1", "Group 2", "Group 3"), yes = c(23.53, 20.47, 
    22.94, 16.51, 16.54, 16.51, 9.68, 13.39, 10.4, 24.48, 29.92, 
    25.54), no = c(41.37, 37.01, 40.52, 48.39, 40.94, 46.94, 55.22, 
    44.09, 53.06, 40.42, 27.56, 37.92), not.app = c(35.1, 42.52, 
    36.54, 35.1, 42.52, 36.54, 35.1, 42.52, 36.54, 35.1, 42.52, 36.54
    )), .Names = c("choice", "group", "yes", "no", "not.app"), row.names = c(NA, 
    12L), class = "data.frame")
    
  • eipi10
    eipi10 over 11 years
    Ah, the magic word is strip. I kept messing around with variations of panel.this, panel.that and wasn't getting anywhere. Thanks!
  • IRTFM
    IRTFM over 11 years
    The panel functions deal with what appears within the boxes. So, yes, the magic word is "strip". And I confess it took me a couple of years to learn this magic word.
  • deca
    deca about 6 years
    A small comment: while I was able to globally specify all similar commands (e.g., par.ylab.text = list(cex = 0.8)) via trellis.par.set(), this did not work for par.strip.text=list(cex=2). It has to be specified right in the plot command. Any ideas why this is the case?
  • IRTFM
    IRTFM about 6 years
    Look at the return from ‘trellis.par.get()’ and read that function’s help page.