Bastian Pöschl wrote:
Dear useRs,

I search for a possibillity to plot stacked bars at specific x positions.
I tried and tried, but the only way i got something adequate was by using 
lowlevel plots segments(). That is quiet ok, but will not please eyes without a 
lot of par() lines.

dh<-data.frame(longitude=abs(rnorm(5)),deers=abs(rnorm(5)),humans=abs(rnorm(5)))

plot(dh$longitude,apply(dh[,2:3], 1, sum),type="n",ylim=c(0,max(apply(dh[,2:3], 
1, sum))))
segments(dh$longitude,0,dh$longitude,dh$deers, col="green", lwd=12)
segments(dh$longitude,dh$deers,dh$longitude,dh$deers+dh$humans, col="red", 
lwd=12)

I hope somebody is experienced in doing such plots or somebody just knows how 
to do it.

Bastian

tmp.lattice <- barchart(deers+humans ~ longitude, data=dh, stack=TRUE, horizontal=FALSE, auto.key=TRUE, box.ratio=.03) tmp.lattice$panel.args[[1]]$x <- rep(dh$longitude,2)[tmp.lattice$panel.args[[1]]$subscripts]
tmp.lattice$x.limits <- range(pretty(dh$longitude))
tmp.lattice

This works. I don't like this solution because I had to modify the trellis object after the fact instead of
specifying it with commands.  The panel.barchart says
|     y|        Horizontal location of bars, possibly factor

which implies that numeric values would be acceptable, but the barchart function coerces the values to effectively
 as.numeric(factor(longitude))
so they appear in the panel function as 1 1 2 2 3 3 4 4 5 5

I tried a few ways to make the longitude stay numeric and didn't hit on any that worked.

Deepayan, can you help here?

Rich

______________________________________________
[email protected] 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.

Reply via email to