Thanks a lot - I am trying it with lattice now On Sat, May 16, 2009 at 10:44 PM, Duncan Mackay <mac...@northnet.com.au> wrote: > Dimitri > > You mentioned lattice so I presumed that you tried a barchart in lattice > > if you found the class of table.a.percents will it comply with the lattice > requirements of the data type ? > class(table.a.percents) > [1] "matrix" > > Using the lattice package and converting to a data.frame > x <- data.frame(Group = rep(paste("Group", 1:4), 5), a = > rep(1:5,each=4),percentage = as.vector(table.a.percents)) > barchart(percentage~a,x,groups = Group, horizontal = F, auto.key = T, ylim > = c(0,60)) > > will get you started in lattice, and customize as required > see also ?make.groups > > PS ?sweep may be of interest in your data manipulation > > Regards > > Duncan Mackay > Department of Agronomy and Soil Science > University of New > > > At 04:57 17/05/2009, you wrote: >> >> Hello! >> I promise I looked into help files before asking. Still cannot figure >> it out. I think it's because I am totally confused what packages use >> lettice, which use trellis, etc. >> Sections 1 and 2 below produce the data and the data to plot. My >> question is about barplot in Section 3. I am trying to: >> 1. add only horizontal gridlines and manipulate the type and color of >> that line. tck = 1 is not flexible enough to do it. >> 2. make the legend come on top of gridlines and not under them >> 3. add plotted Y values above the bars >> >> Thank you very much for any pointers! >> Dimitri >> >> ### Section 1: generates my data set "data": >> >> N<-100 >> myset1<-c(1,2,3,4,5) >> probs1<-c(.05,.10,.15,.40,.30) >> >> group<-unlist(lapply(1:4,function(x){ >> out<-rep(x,25) >> return(out) >> })) >> set.seed(1) >> a<-sample(myset1, N, replace = TRUE,probs1) >> a[which(rbinom(100,2,.01)==1)]<-NA >> set.seed(12) >> b<-sample(myset1, N, replace = TRUE,probs1) >> b[which(rbinom(100,2,.01)==1)]<-NA >> set.seed(123) >> data<-data.frame(group,a=a,b=b) >> data["group"]<-lapply(data["group"],function(x) { >> x[x %in% 1]<-"Group 1" >> x[x %in% 2]<-"Group 2" >> x[x %in% 3]<-"Group 3" >> x[x %in% 4]<-"Group 4" >> return(x) >> }) >> data$group<-as.factor(data$group) >> lapply(data,table,exclude=NULL) >> >> ### Section 2. Creating data to plot: >> table.a<-with(data,table(group,a)) >> table.a.percents<-apply(table.a,2,function(x){ >> out<-round(x*100/sum(x),1) >> return(out) >> }) >> >> ### Section 3. Creating a plot: >> barplot(table.a.percents,xlab = "Values", ylab = >> "Percentages",ylim=c(0,100),axis.lty=1,legend=T,beside=T,tck = 1) >> >> -- >> Dimitri Liakhovitski >> MarketTools, Inc. >> dimitri.liakhovit...@markettools.com >> >> ______________________________________________ >> 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. > >
-- Dimitri Liakhovitski MarketTools, Inc. dimitri.liakhovit...@markettools.com ______________________________________________ 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.