[R] Help with color coded bar graph

Marc Schwartz marc_schwartz at comcast.net
Fri Sep 7 22:07:11 CEST 2007


On Fri, 2007-09-07 at 12:45 -0700, Luis Naver wrote:
> I have a list of observations that are -1, 1 or 0.  I would like to  
> represent them in a horizontal bar color coded based on value like a  
> stacked bar graph. I can achieve this in the form of a png with the  
> following code:
> 
> A = floor(runif(10)*3) - 1
> 
> png(width=100, height=10)
> par(mar=c(0,0,0,0))
> image(matrix(A), col=grey(c(0.1, 0.5, 0.9)))
> dev.off()
> 
> However I would like to do this with one of the standard plotting  
> tools (i.e. barplot) to take advantage of labels and multiple  
> series.  Any help would be appreciated.
> 
> - Luis Naver

How about this:

  barplot(rep(1, length(A)), col = "black", space = 0, border = 0)

  barplot(A, col = grey(0.9), space = 0, border = 0, add = TRUE)

The first call sets the plot region to black, ensuring that the x and y
axes are consistent with the second call.

Alternatively, you can use barplot2() in the gplots CRAN package to do
this in a single call, as it has an argument to color the plot region.

HTH,

Marc Schwartz



More information about the R-help mailing list