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.
______________________________________________
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.