On 02/18/2011 04:31 AM, Alaios wrote:> Dear all
> when I call color.scale like this:
>
>
> require('plotrix')
>
colcolor<-color.scale(c(range_sr,sr),extremes=c("red","blue"))
>
>
> Error in if (min(reds)< 0 || max(reds)> 1) reds<- rescale(reds,
c(0, :
> missing value where TRUE/FALSE needed
>
>
> range_sr
> [1] -10.00000000000000 44.02977813958366
>
> str(sr)
> num [1:100, 1:100] 2.54 2.71 2.89 2.95 3.03 ...
>
>
> this was working on simpler data sets before.
>
> How can I understand more what was the problem in depth.? I have read the
source code of color.scale but unfortunately I did not make any progress to
understand this error message. Is it possible to raise an exception before the
error happens and see what went wrong?
>
Hi Alex,
When you concatenate (c) the extremes and the matrix, you get a vector:
> sr<-matrix(runif(10000,-10,44.03),100,100)
> str(sr)
num [1:100, 1:100] 11.2 27.13 4.13 -4.46 26.44 ...
> sr_colors<-color.scale(c(-10,44.03,sr))
> str(sr_colors)
chr [1:10002] "#000000" "#FFFFFF" "#646464"
"#AFAFAF" "#434343" ...
Recreate the matrix:
sr_colors<-matrix(sr_colors[-(1:2)],100,100)
and all should be well.
Jim