[R] Help with color.scale {plotrix}

William Dunlap wdunlap at tibco.com
Fri Oct 9 23:49:36 CEST 2015


Try setting the na.color argument of color.scale to a color string,
not NA.  "#00000000" (alpha = 0 is the key part) is transparent so it it
might
suit your needs.

Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Fri, Oct 9, 2015 at 12:26 PM, Kumar Mainali <kpmainali at gmail.com> wrote:

> Hi Sarah,
>
> Thanks for the explanation. This solves my first problem. I hope somebody
> will be able to answer my second question. Copied here from previous email
> >>
>
> Another question: some of my matrices have missing cells and I do not want
> to assign any colors to the missing cells. The following code gives me
> error. I am trying to use the output (cellcol) to the
> function color2D.matplot.
>
> > cellcol<-matrix("#000000", nrow=nrow(plotdata),ncol=ncol(plotdata))
> > cellcol[x<0.33]<-color.scale(x[x<0.33],c(1,0.8),c(0,0.8),0, na.color=NA)
> Error in cellcol[x < 0.33] <- color.scale(x[x < 0.33], c(1, 0.8), c(0,  :
>   NAs are not allowed in subscripted assignments
> In addition: Warning messages:
> 1: In min(x) : no non-missing arguments to min; returning Inf
> 2: In max(x) : no non-missing arguments to max; returning -Inf
>>
> Postdoctoral Associate
> Department of Biology
> University of Maryland, College Park
>
> On Fri, Oct 9, 2015 at 11:48 AM, Sarah Goslee <sarah.goslee at gmail.com>
> wrote:
>
> > Hi Kumar,
> >
> > You're overthinking it:
> >
> > in RGB, colorspace, cs1 is red, cs2 is green, cs3 is blue.
> > So if cs1=c(1,1),cs2=(c(0,1),cs3=0 (or c(0,0) because of R's recycling)
> > the first color in the sequence is c(1, 0, 0) or red ##FF0000 and the
> > second color is c(1, 1, 0) #FFFF00 or yellow.
> >
> > Sarah
> >
> > On Fri, Oct 9, 2015 at 11:16 AM, Kumar Mainali <kpmainali at gmail.com>
> > wrote:
> > > Hi Jim,
> > >
> > > Thank you! Your color code does work. I still do not understand how red
> > to
> > > yellow in RGB space translates to cs1=c(1,1),cs2=(c(0,1),cs3=0. In
> other
> > > words, I have RGB values for red and yellow. How do I go from there to
> > the
> > > code you sent?
> > >
> > > Another question: some of my matrices have missing cells and I do not
> > want
> > > to assign any colors to the missing cells. The following code gives me
> > > error. I am trying to use the output (cellcol) to the
> > > function color2D.matplot.
> > >
> > >> cellcol<-matrix("#000000", nrow=nrow(plotdata),ncol=ncol(plotdata))
> > >> cellcol[x<0.33]<-color.scale(x[x<0.33],c(1,0.8),c(0,0.8),0,
> na.color=NA)
> > > Error in cellcol[x < 0.33] <- color.scale(x[x < 0.33], c(1, 0.8),
> c(0,  :
> > >   NAs are not allowed in subscripted assignments
> > > In addition: Warning messages:
> > > 1: In min(x) : no non-missing arguments to min; returning Inf
> > > 2: In max(x) : no non-missing arguments to max; returning -Inf
> > > ᐧ
> > >
> > > Postdoctoral Associate
> > > Department of Biology
> > > University of Maryland, College Park
> > >
> > > On Fri, Oct 9, 2015 at 7:24 AM, Jim Lemon <drjimlemon at gmail.com>
> wrote:
> > >
> > >> Hi Kumar,
> > >> The color.scale function translates numeric values into one or more
> > >> intervals of color by a linear transformation into the numeric values
> > that
> > >> specify colors. One of three color spaces (rgb, hcl and hsv) can be
> > >> specified, and the endpoints can be specified as "extremes=c(<minimum
> > >> color>,<maximum color>" or as three vectors of numbers. By default,
> the
> > RGB
> > >> color space is used, so:
> > >>
> > >> # starts at RGB #FF0000 and finishes at RGB #FFFF00
> > >> red to yellow - extremes=c("red","yellow") OR
> > cs1=c(1,1),cs2=(c(0,1),cs3=0
> > >> # starts at RGB #FFFF00 and finishes at RGB #00FF00
> > >> yellow to green - extremes=c("yellow","green") OR
> > >> cs1=c(1,0),cs2=(c(1,1),cs3=0
> > >>
> > >> Obviously the shades of colors that you want may differ from the
> above,
> > so
> > >> you have to play with the values to get the ones you want. In many
> > cases,
> > >> you will have to specify more than two numbers for the color specs to
> > get
> > >> the "in between" colors right, especially if the span of the colors is
> > >> large.
> > >>
> > >> Jim
> > >>
> > >> On Fri, Oct 9, 2015 at 4:15 PM, Kumar Mainali <kpmainali at gmail.com>
> > wrote:
> > >>
> > >>> Hi Jim and others:
> > >>>
> > >>> I needed color code for some color gradients in color.scale
> function. I
> > >>> found that the following translates to green to yellow to
> > >>> red: c(0,1,1),c(1,1,0),0. How does this string translate to the color
> > >>> gradient? I would like to know the gradient code for red to yellow,
> > yellow
> > >>> to green and other ranges.
> > >>>
> > >>> Thanks,
> > >>> Kumar Mainali
> > >>>
> >
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.

	[[alternative HTML version deleted]]



More information about the R-help mailing list