# How to place titles in lattice plots

I like the Economist theme in the latticeExtra package. It produces nice looking charts that mimic the design of the weekly newspaper, such as in this example:

For some time I wondered how I could put the title of my lattice plots into the top left corner as well (by default titles are centred). Reviewing the code of the theEconomist.theme function by Felix Andrews reveals the trick. It is the setting of par.main.text:

library(lattice)my.settings <- list(  par.main.text = list(font = 2, # make it bold                       just = “left”,                        x = grid::unit(5, “mm”)))xyplot(sin(1:100) ~ cos(1:100),        par.settings=my.settings,       main=“Hello World”,        type=“l”)

Furthermore, I can use the same approach to place a sub-title in the bottom left corner of my chart, e.g. to describe the source of my data:

my.settings <- list(  par.main.text = list(font = 2, # make it bold                       just = “left”,                        x = grid::unit(5, “mm”)),  par.sub.text = list(font = 1,                       just = “left”,                       x = grid::unit(5, “mm”))  )xyplot(sin(1:100) ~ cos(1:100),        par.settings=my.settings,       main=“Hello World”,        sub=“Source: Nobody knows”,       type=“l”)

R version 3.2.0 (2015-04-16)Platform: x86_64-apple-darwin13.4.0 (64-bit)Running under: OS X 10.10.3 (Yosemite)locale:[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8attached base packages:[1] stats graphics grDevices utils datasets methods base     other attached packages:[1] lattice_0.20-31loaded via a namespace (and not attached):[1] tools_3.2.0 grid_3.2.0