I think you want to use the 'density' argument. For example: barplot(1:5,col=1) legend("topleft",fill=1,legend="text",cex=1.2) par(new=TRUE) barplot(1:5,density=5,col=2) legend("topleft",fill=2,density=20,legend="text",bty="n",cex=1.2)
(if you wanted to overlay solid colors with hatching) Here's the lattice alternative of the bar graph, though the help page says 'density' is currently unimplemented (Package lattice version 0.16-2). To get the legend into columns, I followed the suggestion described here: http://tolstoy.newcastle.edu.au/R/help/05/04/2529.html Essentially I use mapply() and the line following to create a list with alternating 'text' and 'rect' arguments (3 times to get 3 columns). === x <- matrix(1:75, ncol= 5) dimnames(x)[[2]] <- paste("Method", 1:5, sep="") dimnames(x)[[1]] <- paste("Row", 1:15, sep="") u <- mapply(function(x,y) list(text=list(lab=x),rect=list(col=y)), x = as.data.frame(matrix(levels(as.data.frame.table(x)$Var1), ncol=3)), y = as.data.frame(matrix(rainbow(nrow(x)), ncol=3)), SIMPLIFY=FALSE) key <- c(rep=FALSE,space="bottom",unlist("names<-"(u,NULL),rec=FALSE)) barchart(Freq ~ Var2, data = as.data.frame.table(x), groups = Var1, stack = TRUE, col=rainbow(nrow(x)),density=5, key = key ) === (I often use tim.colors() in the 'fields' package, if you wanted other ideas for color schemes). --- Deb Midya <[EMAIL PROTECTED]> wrote: > Jim, > > Thanks for such a quick response. It works well. Is it possible to fill > the bars with patterns and colours? > > Regards, > > Deb > > Jim Lemon <[EMAIL PROTECTED]> wrote: > Deb Midya wrote: > > Hi R Users! > > > > Thanks in advance. > > > > I am using R-2.5.1 on Windows XP. > > > > I am trying to do a stacked bar plot, but could not get through the > following problem. The code is given below. > > > > 1. How can I provide 15 different colors for each method with 15 Rows? > > > > 2. How can I put the legend in a particular position (eg., in the top or > bottom or right or left)? How can I put legend using a number of rows (eg., > using two or three rows)? > > > Hi Deb, > As you have probably noticed, the integer coded colors repeat too > quickly for the number of colors you want. You can use the rainbow() > function to generate colors like this: > > barplot(x,beside=FALSE,col=rainbow(nrow(x))) > > or there are lots of other color generating functions in the grDevices > or plotrix packages. Here's how to get your legend in an empty space for > your plot. There is also an emptyspace() function in the plotrix package > that tries to find the biggest empty space in a plot, although it > probably wouldn't work in this case. > > legend(0,1000,rownames(x),fill=rainbow(nrow(x))) > > Jim > > > > > --------------------------------- > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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 > and provide commented, minimal, self-contained, reproducible code. > ____________________________________________________________________________________ Comedy with an Edge to see what's on, when. ______________________________________________ R-help@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 and provide commented, minimal, self-contained, reproducible code.