top of page

Cores

Palettes

Tons de cinza

Palettes

O R define uma palette como um vetor de cores.

A função palette() retorna um vetor básico de cores.

palette()


[1] "black"   "red"     "green3"  "blue"    "cyan"    "magenta" "yellow"
[8] "gray" 
 

palette()[2]
[1] "red"

A função plotCol() exibe uma cor ou um vetor de cores.

# Author: Marius Hofert

# Source: https://github.com/jeffreyhorner/R-Judy-Arrays/blob/master/src/library/grDevices/demo/colors.R

library(grid)

plotCol <- function(col, nrow=1, ncol=ceiling(length(col) / nrow), txt.col="black") {

 stopifnot(nrow >= 1, ncol >= 1)

 if(length(col) > nrow*ncol)

 warning("some colors will not be shown")

 require(grid)

 grid.newpage()

 gl <- grid.layout(nrow, ncol)

 pushViewport(viewport(layout=gl))

 ic <- 1

 for(i in 1:nrow) {

 for(j in 1:ncol) {

 pushViewport(viewport(layout.pos.row=i, layout.pos.col=j))

 grid.rect(gp= gpar(fill=col[ic]))

 grid.text(col[ic], gp=gpar(col=txt.col))

 upViewport()

 ic <- ic+1

}}

upViewport()

invisible(gl)

}

# Exemplos:

plotCol("yellow")
 

plotCol(palette())

plotCol(palette(),nrow=2)

Outros vetores são: heat.colors, terrain.colors, topo.colors, cm.colors e rainbow.

heat.colors(10)
 [1] "#FF0000FF" "#FF2400FF" "#FF4900FF" "#FF6D00FF" "#FF9200FF" "#FFB600FF"
 [7] "#FFDB00FF" "#FFFF00FF" "#FFFF40FF" "#FFFFBFFF"

# Para visualizar estas cores, escreva:

plotCol(heat.colors(10),nrow=2)

Observe que uma cor pode ser especificada pelo seu nome ou pelo seu código RGB hexadecimal (R: red, G:green, B:blue).

Por exemplo, a cor vermelha é R = 255, G = 0 e B = 0.

Podemos usar a função rgb() para obter sua especificação em hexadecimal:

 

rgb(255,0,0,maxColorValue=255)
[1] "#FF0000"

A função col2rgb() é útil para se obter a especificação RGB de uma cor específica.

# Exemplos

col2rgb("yellow")
      [,1]
red    255
green  255
blue     0

 

col2rgb("brown")
      [,1]
red    165
green   42
blue    42

# Outro exemplo, considerando as palettes do R:

par(mar=c(1,1,0.1,1))
plot(c(1,200),c(1,200),axes=F,col=0)
amostra.cores <- function(palette,nome,posicao) {
cor <- 1
text(0,posicao,as.character(nome),pos=4)
  for (k in seq(1,200,10)) {
  rect(k,posicao-10,k+10,posicao-30,col=palette[cor])
  text(k+5,posicao-20,cor,col="black")
  cor <- cor+1  }}
amostra.cores(heat.colors(20),"heat.colors(20)",190)
amostra.cores(terrain.colors(20),"terrain.colors(20)",150)
amostra.cores(topo.colors(20),"topo.colors(20)",110)
amostra.cores(cm.colors(20),"cm.colors(20)",70)
amostra.cores(rainbow(20),"rainbow(20)",30)

Tons de cinza

A função gray.colors(n) gera um vetor de n tons de cinza.

Podemos escrever gray.colors(n) ou grey.colors().

gray.colors(5)
[1] "#4D4D4D" "#888888" "#AEAEAE" "#CCCCCC" "#E6E6E6"


grey.colors(5)
[1] "#4D4D4D" "#888888" "#AEAEAE" "#CCCCCC" "#E6E6E6"

# Para visualizar as cores deste vetor:

plotCol(grey.colors(5))

# Vinte tons de cinza:

plotCol(gray.colors(20),nrow=4)

# Exemplo

 

par(mar=c(1,1,0.1,1))
plot(c(1,200),c(1,200),axes=F,col=0)
amostra.cores <- function(palette,nome,posicao,tons) {
cor <- 1
text(0,posicao,as.character(nome),pos=4)
  for (k in seq(1,200,(200/tons))) {
  rect(k,posicao-10,k+(200/tons),posicao-30,col=palette[cor])
  text(k+(100/tons),posicao-20,cor,col="black")
  cor <- cor+1  }}
amostra.cores(gray.colors(20),"gray.colors(20)",190,20)
amostra.cores(gray.colors(10),"gray.colors(10)",150,10)
amostra.cores(gray.colors(7),"gray.colors(7)",110,7)
amostra.cores(gray.colors(5),"gray.colors(5)",70,5)
amostra.cores(gray.colors(20, start = 0.6, end = 0.9),"gray.colors(20, start = 0.6, end = 0.9)",30,20)

A função gray(k), em que k é um número entre 0 e 1, também gera tons de cinza.

Podemos escrever gray() ou grey().

grey(0)
[1] "#000000"

 

grey(1)
[1] "#FFFFFF"

grey(0:10/10)
 [1] "#000000" "#1A1A1A" "#333333" "#4D4D4D" "#666666" "#808080" "#999999"
 [8] "#B3B3B3" "#CCCCCC" "#E6E6E6" "#FFFFFF"

plotCol(gray(0:10/10))

Função colors()

A função colors() retorna os nomes de cores que o R conhece.

Podemos escrever colors() ou colours().

colors()
  [1] "white"              "aliceblue"          "antiquewhite"       "antiquewhite1"      "antiquewhite2"        [6] "antiquewhite3"      "antiquewhite4"      "aquamarine"         "aquamarine1"        "aquamarine2"       

 [11] "aquamarine3"        "aquamarine4"        "azure"              "azure1"             "azure2"            
 [16] "azure3"             "azure4"             "beige"              "bisque"             "bisque1"           
 [21] "bisque2"            "bisque3"            "bisque4"            "black"              "blanchedalmond"    
 [26] "blue"               "blue1"              "blue2"              "blue3"              "blue4"             
 [31] "blueviolet"         "brown"              "brown1"             "brown2"             "brown3"            
 [36] "brown4"             "burlywood"          "burlywood1"         "burlywood2"         "burlywood3"        
 [41] "burlywood4"         "cadetblue"          "cadetblue1"         "cadetblue2"         "cadetblue3"        
 [46] "cadetblue4"         "chartreuse"         "chartreuse1"        "chartreuse2"        "chartreuse3"       
 [51] "chartreuse4"        "chocolate"          "chocolate1"         "chocolate2"         "chocolate3"

...etc...

 

A função a seguir mostra estas cores.     

 

par(mar=c(1,1,1,1))
plot(c(1,200),c(1,260),axes=F,col=0)
cor <- 1
cortx <- rep("black",400)
cortx[c(24,26:30,73,107,108,153:200,261:300,461,477,490,491)] <- "white"
 for (j in seq(260,1,-20)) {
  for (k in seq(1,200,10)) {
  rect(k,j,k+10,j-20,col=colors()[cor])
  text(k+5,j-10,cor,col=cortx[cor])
  cor <- cor+1  }}
  

Por último, experimente escrever:

demo(colors)

bottom of page