[R] Append text to panels of lattice::barchart()

Duncan Mackay dulcalma at bigpond.com
Tue Nov 26 23:08:40 CET 2013


Hi

Try

barchart(yield ~ variety | site, data = barley,
          groups = year, layout = c(1,6), stack = TRUE,
          auto.key = list(space = "right"),
          ylab = "Barley Yield (bushels/acre)",
          scales = list(x = list(rot = 45)),
          panel = function(x,y,...){
          
                    pnl = panel.number()
                    panel.barchart(x,y,...)
                   
                    if (pnl == 6) grid.text("1931=15, 1932=20", 0.5, 0.88,
gp = gpar(cex = 0.8))

                  }
)

if you had as.table = TRUE as an argument pnl==1 would apply to the top
panel

you then have to repeat the line an amend the pnl == 6. 
On a panel basis is easier than on a plot basis as the xy coordinates are
easily managed.

Another way is trellis.focus but possibly a little fiddlier

Duncan

Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au 

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
Behalf Of Tim Sippel
Sent: Wednesday, 27 November 2013 07:08
To: r-help at r-project.org
Subject: [R] Append text to panels of lattice::barchart()

I could use a little help writing a panel function to append text to each
panel of a lattice::barchart().  Below is a modified version of the barley
dataset to illustrate.

data(barley)
# add a new variable called samp.size
barley$samp.size<-round(runif(n=nrow(barley), min=0, max=50),0) # Below is a
barchart plot for this example barchart(yield ~ variety | site, data =
barley,
         groups = year, layout = c(1,6), stack = TRUE,
         auto.key = list(space = "right"),
         ylab = "Barley Yield (bushels/acre)",
         scales = list(x = list(rot = 45))) # I need to add to each panel
the sum of samp.size by the groups variable
(year) for that panel.
# So the text appended to the top panel (Waseca) might say "1931=15,
1932=20", and same for each subsequent panel.

	[[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list