[R] using color coded colorbars for bar plots

Jim Lemon jim at bitwrit.com.au
Sun Dec 2 12:16:28 CET 2007


James.Dell at csiro.au wrote:
> Hi Jim,
> Thanks for getting back to me so quickly.
> 
> I did look at color.legend, but that seems to plot colored blocks for
> the observations (in this case the mean) and not for the color.scale
> (which represents variance in this case).  Unless there is a
> functionality that I haven't discovered yet.  If you have created a
> similar plot and would be happy to share some code I'd be very
> apprecitive.
> 
Part of the problem is that you seem to have two names for the same 
variable in your code (Standard.Deviance and Standard.Deviation - unless 
that was a typo). Notice how I calculate the colors twice, the second 
time with a simple integer sequence to get the right number of evenly 
spaced colors. In your example, you calculated the colors for 
RankVar$Standard.Deviance again, but you don't need all those colors for 
the legend, and they're in the wrong order anyway. What is generally 
wanted for a color legend is the minimum and maximum values on the ends 
and a few linear interpolations in the middle.

barplot(RankVar$MeanDecreaseAccuracy,
  col=color.scale(RankVar$Standard.Deviance,
  c(0,1,1),c(1,1,0),0),
  ylab = "Variable Importance",
  names.arg = rownames(RankVar),
  cex.names = .7,
  main = "Variables from RandomFishForest",
  sub= "Mean Decrease in Accuracy")
col.labels<- c("Low","Mid","High")
color.legend(6,13,11,14,col.labels,
  rect.col=color.scale(1:5,c(0,1,1),c(1,1,0),0))

Jim



More information about the R-help mailing list