[R] adding color bar to a graph

Monica Pisica pisicandru at hotmail.com
Fri Aug 7 14:50:59 CEST 2009

Hi Jim,
Thanks for your answer. It does it but not quite as i would like it ;-) I need the colors to be blended as the colorRampPalette does it going from one color to the next in the list. Your legend will have 5 discreet colors and accept a vector of colors as the image.plot command does. If i can make the rainbow have my colors would be great. I will look more into that.
Thanks again, i really appreciate your suggestion,

> Date: Fri, 7 Aug 2009 21:11:46 +1000
> From: jim at bitwrit.com.au
> To: pisicandru at hotmail.com
> CC: r-help at stat.math.ethz.ch
> Subject: Re: [R] adding color bar to a graph
> Monica Pisica wrote:
>> Hi everybody,
>> I am wondering how i can add a "stretch" color bar / legend to a graph that uses colorBrewer to define the colors in it. I will try to explain my graph, but i also uploaded it at: ftp://ftpext.usgs.gov/pub/er/fl/st.petersburg/Monica_pal/
>> The file is: robcor_training_pca.pdf - i will also attach this file in case some people accept attachments.
>> So i took apart the cor.plot function from mvoutlier and i used instead of the scatter plot function the smooth scatter density plot from geneplotter, generating my own function called cordens.plot. Now i would like to add a colorbar on the right side of the graph with red as my highest density and purple as the lowest density and right next to the colors labels "min" for purple and "max" for red (i don't want actual numbers, although i suppose i can deal with that as well if need be).
>> I've tried image.plot function but i cannot set correctly the colors in the bar since i am not using an "orthodox" rainbow set. Originally my colors in the graph are set with colorRampPalette(c("darkviolet", "deepskyblue4", "green", "yellow", "red")).
> Hi Monica,
> I think color.legend in the plotrix package will do what you want.
> color.legend(200,0,220,100,legend=c("min","max"),
> rect.col=c("darkviolet","deepskyblue4","green","yellow","red"))
> and you will have to add some space on the right side
> par(mar=c(5,4,4,4))
> Jim


More information about the R-help mailing list