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]]
On 2013-11-27 10:07, Tim Sippel wrote:> 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.All you need is to modify the levels associated with the site factor. Here's a trivial addition to give you the idea: levels(barley$site) <- paste(levels(barley$site), LETTERS[1:6]) Then the same call you used will work. Of course, you'll need to do a bit more than LETTERS[1:6] but I'm sure you know how to do that. HTH> > [[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.
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.