On Mon, 28-Jan-2013 at 12:21PM +1300, Paul Murrell wrote: |> Hi |> |> On 17/01/13 13:19, p_conno...@slingshot.co.nz wrote: |> >Paul Murell's article "What's in a Name" in The R Journal Vol 4/2 |> >gives an interesting example of editing a stacked barplot of the barley |> >data. Using the method described in that article, it's easy to do |> >something along the lines of |> > |> >grid.edit("plot_01.border.strip.1", |> > grep=TRUE, global=TRUE, |> > gp=gpar(col = "red")) |> > |> >That changes more than I'd like to change. I'd like to change only the |> >bottom line of the rectangle. How would I overwrite the unwanted red |> >lines along the lines of what box() would do with base graphics? |> |> You cannot modify just part of a basic shape (e.g., just the bottom |> line of a rectangle). One way to do what I think you want is to |> specify a custom strip function that draws an extra line over the |> top of the existing rectangle, like this ... |> |> library(lattice) |> library(grid) |> barchart(yield ~ variety | site, data = barley, |> groups = year, layout = c(1,6), |> stack = TRUE, |> ylab = "Barley Yield (bushels/acre)", |> scales = list(x = list(rot = 45)), |> strip = function(...) { |> strip.default(...) |> grid.segments(0, 0, 1, 0, gp=gpar(lwd=1.5, col="red")) |> }) |> |> Is that the sort of effect you want?
I didn't really want thick red lines, but now that I know how to use grid.segments, I can do what I need. Thanks -- ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. ___ Patrick Connolly {~._.~} Great minds discuss ideas _( Y )_ Average minds discuss events (:_~*~_:) Small minds discuss people (_)-(_) ..... Eleanor Roosevelt ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. ______________________________________________ R-help@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.