Lattice different colours for bars
On Jun 12, 2013, at 6:43 PM, Andrew McFadden (Andy) wrote:
Hi all
Perhaps this is torturous methodology. I was trying to use lattice to produce a barchart showing the number positive and negative over time. I wasn't quite sure how create a different colour for values of arbo$Ikeda in the example below ie red for ikeda and green for neg.
library(reshape)
library(lattice)
Time=c(rep(6,17), rep(5,17), rep(4,17),
rep(3,17),rep(2,17), rep(1,17))
Ikeda=c(rep("Ikeda",6),rep("Neg",11),
rep("Ikeda",0),rep("Neg",17),
rep("Ikeda",1),rep("Neg",16),
rep("Ikeda",0),rep("Neg",17),
rep("Ikeda",0),rep("Neg",17),
rep("Ikeda",0),rep("Neg",17))
Theileria=c(rep("Other",6),rep("Neg",11),
rep("Other",12),rep("Neg",5),
rep("Other",12),rep("Neg",5),
rep("Other",14),rep("Neg",3),
rep("Other",14),rep("Neg",3),
rep("Other",13),rep("Neg",4))
value=c(rep(1,102))
arbo=data.frame(Time, Ikeda,Theileria,value)
arbo$Time=as.factor(arbo$Time)
levels(arbo$Time)
arbo$Time=factor(arbo$Time,
levels=c(1,2,3,4,5,6),
labels=c("Dec 2008", "Dec 2009", "Dec 2010",
"Dec 2011", "Jun 2012", "Dec 2012")
)
mdat=melt(arbo,measure.var=c(4),id.var=c(1:3),na.rm=FALSE)
mdat=cast(mdat,Time +Ikeda~variable,fun.aggregate = c(sum))
barchart(value~Ikeda|Time, data = mdat,
type="count",
col=c("green","red")[1+(mdat$Ikeda=="Ikeda")],
cex=1.1,
xlab="PCR positive over time",
aspect = c(1.5),layout = c(6, 1),
stack=FALSE,
strip=strip.custom(strip.names=FALSE, strip.levels=TRUE, bg="light blue"),
par.strip.text=list(cex=1.1), scales=list(cex=c(1.1)))
Any suggestions on how to do this would be appreciated.
Regards Andrew Investigation and Diagnostic Centre- Upper Hutt
David Winsemius Alameda, CA, USA