[R] color vectors other than gray()

Paulo E. Cardoso pecardoso at netcabo.pt
Fri Mar 27 16:40:18 CET 2009


OK

I got it working partially.

The plot results in a ramp varying from white -> red -> black, doing this:

plot(grelha,ol="grey80", #! Gráfico com grelha de amostragem e gradiente de
abundância
 
fg=color.scale(((1-(quad_N_sp$x)/max(quad_N_sp$x))),c(0,1,1),c(0,1),c(0,1)),
  cex.lab=0.7,
  cex.axis=0.7,
  cex.main=0.7,
  xlab="Coord X",
  ylab="Coord Y",
  main=paste("Espécie: ",splist[i]),
  xlim=c(210000,240000)
  )

Where the ramp results from the red, green, blue ranges used in:
color.scale(((1-(quad_N_sp$x)/max(quad_N_sp$x))),c(0,1,1),c(0,1),c(0,1))

I don't know how to control the ramp. In this particular case it results
reasonably well but I ave no idea how to control the RGB channels to produce
a ramp-of-interest.

Attached workspace contains a data sample to create the plot.

Use the code below:

library(maptools)
library(plotrix)
pallete <- color.scale(vec.ab.01,c(0,1,1),c(0,1),c(0,1))
win.graph(4,5)
plot(grelha,ol="grey80", #! Gráfico com grelha de amostragem e gradiente de
abundância
  fg=pallete,
  cex.lab=0.7,
  cex.axis=0.7,
  cex.main=0.7,
  xlab="Coord X",
  ylab="Coord Y",
  main=paste("Espécie: ","Carduelis carduelis"),
  xlim=c(210000,240000)
  )
col_lab <- c(max(vec.ab),min(vec.ab)) #! Vector com os limites min e max do
N de indivíduos observados
color.legend(248000,120000,250000,128000,col_lab,sort(unique(pallete)),gradi
ent="y",cex=0.7)#! Legenda
text(245300,130500,"Nº Indivíduos",cex=0.6)
plot(blocos,ol="grey40",fg=NA,add=T)




____________
Paulo E. Cardoso


-----Mensagem original-----
De: baptiste auguie [mailto:ba208 at exeter.ac.uk] 
Enviada: sexta-feira, 27 de Março de 2009 14:50
Para: Paulo E. Cardoso
Cc: r-help at stat.math.ethz.ch; r-help at r-project.org
Assunto: Re: [R] color vectors other than gray()

Can you provide a minimal example that we can run directly after copy  
and paste (using a standard data set or dummy data)?

It's always helpful to try and nail down the core of your question  
(often you'll find the answer while formulating your question in  
minimal terms).

  baptiste



On 27 Mar 2009, at 14:36, Paulo E. Cardoso wrote:

> I'm certainly missing something.
>
> In fact the ramp I need must be scaled according to a vector of  
> values (in
> this case species abundance in each grid cell), as in the example  
> vector
> below:
>
>> length(quad_N_sp$x) # where x is the abundance value
> [1] 433
>
> quad_N_sp$x
> [1] 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 3 0 0 0 0 0 0 0 0  
> 0 0 0 3
> 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
> [101] 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> [201] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> [301] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0  
> 0 0 0 0
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> [401] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  
> 0 0
>
> I need to discriminate shading level accordingly to the abundance  
> value
> (level).
>
> I don't know how to proceed.
>
> ____________
> Paulo E. Cardoso
>
> -----Mensagem original-----
> De: baptiste auguie [mailto:ba208 at exeter.ac.uk]
> Enviada: sexta-feira, 27 de Março de 2009 13:30
> Para: Paulo E. Cardoso
> Cc: r-help at stat.math.ethz.ch; r-help at r-project.org
> Assunto: Re: [R] color vectors other than gray()
>
> ?colorRamp
>
> Hope this helps,
>
> baptiste
>
> On 27 Mar 2009, at 13:16, Paulo E. Cardoso wrote:
>
>> I'm trying to create a graph where different cells of a grid (a
>> shapefile)
>> will be painted with a color share scale, where the most easy way is
>> to use
>> gray().
>>
>> Can I somehow get a vector (gradient) of colors, a vector of colors
>> with
>> other methods but gray()?
>>
>> I'm doing this until now
>>
>>
>>
>> quad_N_sp <-
>> merge(sp_dist[sp_dist
>> $sp==splist[i],],grelha_ID,by.x="quad",by.y="quadricula
>> ",all.y=T,)
>>
>> quad_N_sp$x[is.na(quad_N_sp$x)] <- 0
>>
>> quad_N_sp <- quad_N_sp[order(quad_N_sp$id),]
>>
>> paleta <- gray(1-(quad_N_sp$x)/max(quad_N_sp$x)) #! Tons de cinzento
>>
>> win.graph(4,5)
>>
>> plot(grelha,ol="grey80", #! Gráfico com grelha de amostragem e
>> gradiente
>> de abundância
>>
>> fg=paleta,
>>
>> cex.lab=0.7,
>>
>> cex.axis=0.7,
>>
>> cex.main=0.7,
>>
>> xlab="Coord X",
>>
>> ylab="Coord Y",
>>
>> main=paste("Espécie: ",splist[i]),
>>
>> xlim=c(210000,240000)
>>
>> )
>>
>> col_lab <- c(max(quad_N_sp$x),min(quad_N_sp$x)) #! Vector com os
>> limites
>> min e max do N de indivíduos observados
>>
>>
>> color
>> .legend
>> (248000,120000,250000,128000,col_lab,sort(unique(paleta)),gradie
>> nt="y",cex=0.6)#! Legenda
>>
>> text(245300,130500,"Nº Indivíduos",cex=0.6)
>>
>> plot(blocos,ol="grey40",fg=NA,add=T)
>>
>>
>>
>> I'd like to replace the grey shade by other colors.
>>
>>
>>
>> Thanks in advance
>>
>> ____________
>>
>> Paulo E. Cardoso
>>
>>
>>
>>
>> 	[[alternative HTML version deleted]]
>>
>> <ATT00001.txt>
>
> _____________________________
>
> Baptiste Auguié
>
> School of Physics
> University of Exeter
> Stocker Road,
> Exeter, Devon,
> EX4 4QL, UK
>
> Phone: +44 1392 264187
>
> http://newton.ex.ac.uk/research/emag
> ______________________________
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.0.238 / Virus Database: 270.11.30/2026 - Release Date:  
> 03/27/09
> 07:13:00
>

_____________________________

Baptiste Auguié

School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK

Phone: +44 1392 264187

http://newton.ex.ac.uk/research/emag
______________________________

No virus found in this incoming message.
Checked by AVG - www.avg.com 

03/27/09
07:13:00


More information about the R-help mailing list