[R] panel function with barchart (lattice)
Drew
drewbrewit at yahoo.com
Fri Jan 27 16:41:54 CET 2006
Deepayan, thank you for your help!!
After much trial and error (and re-reading the help
files), I was able to
come up with what I wanted by making sure the first
line of my panel
function looked like this:
panel = function(y,x,...)
The complete set of code I ended up using:
barchart(yield ~ variety | site, data = barley,
groups = year,
layout = c(1,6),
stack = TRUE,
auto.key = list(points = FALSE, rectangles = TRUE,
space = "top"),
scales = list(x = list(abbreviate = TRUE, minlength
= 5, rot = 45)),
panel = function(y,x,...){
panel.grid(h = -1, v = 0, col = "gray", lty =
"dotted")
panel.barchart(x,y,...)
panel.text(x,y,label = round(y,1),cex=.8)
}
)
Thank you for your work on the lattice package!
~Nick
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch]On Behalf Of
Deepayan Sarkar
Sent: Wednesday, January 25, 2006 11:30 AM
To: Drew
Cc: r-help at stat.math.ethz.ch
Subject: Re: [R] panel function with barchart
(lattice)
On 1/25/06, Drew <drewbrewit at yahoo.com> wrote:
> Folks at R help,
>
> I can't quite get the panel function to work the way
I
> want within barchart.
> I guess I'm still not understanding how to piece
> together multiple panel
> arguments, especially when "groups" is specified.
>
> Example: I want to be able to add the value of
"yield"
> to each section of
> each bar in this graph:
>
> barchart(yield ~ variety | site, data = barley,
> groups = year,
> layout = c(1,6),
> stack=TRUE,
> ylab = "Barley Yield (bushels/acre)"
> )
>
> To do this, I add my panel function:
>
> barchart(yield ~ variety | site, data = barley,
> groups = year,
> layout = c(1,6),
> stack=TRUE,
> ylab = "Barley Yield (bushels/acre)",
>
> panel = function(x,y,subscripts,groups,...){
> panel.barchart(x,y,...)
Well, panel.barchart needs the subscripts and groups
arguments to draw
stacked bar charts, and you are calling it without
them.
> ltext(x = x, y = y, label =
> round(barley$yield[subscripts],1), cex=.8)
The y values will need to be accumulated. Have you
looked at what
panel.barchart does?
> }
> )
>
> Then I get the values to print on each bar (which is
> what I want) but the
> bars no longer stack to appropriate height, and I
> cannot get the subsections
> of each bar to be a different color. I've tried
> numerous variations of
> panel.barchart, panel.superpose, etc. using examples
> from ?xyplot, but
> nothing quite works or I get an error message.
>
> Any help would be appreciated.
>
> ~Nick
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
--
http://www.stat.wisc.edu/~deepayan/
______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list