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?
TIA
Patrick
Equivalent of box() in grid graphics
3 messages · Patrick Connolly, Paul Murrell
10 days later
Hi
On 17/01/13 13:19, p_connolly at 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?
Paul
TIA Patrick
______________________________________________ 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.
Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
1 day later
On Mon, 28-Jan-2013 at 12:21PM +1300, Paul Murrell wrote:
|> Hi |>
|> On 17/01/13 13:19, p_connolly at 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
~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.