Trabalhar com cores no R

Trabalhando com cores no R

Flexibilidade na análise de dados

Fala galera, uma coisa interessante de se trabalhar com ferramentas de análise de dados é a possibilidade de customizar ao máximo os elementos visuais que você apresenta em relatórios e gráficos. Estas análises te ajudam a entender o cenário que se está trabalhando. Entre várias possibilidades, uma delas diz respeito à cores, e é por isso que explico rapidamente como trabalhar com cores no R.

Trabalhar com cores no R

Para fugir das cores iniciais de todos os gráficos e relatórios feitos em R, existem várias saídas. Você pode usar padrão RGB e definir os valores de Rred (vermelho), Ggreen (verde) e Bblue (azul) e então formar a cor que tem interesse. Você pode usar uma paleta de cores já existente. Também pode usar um pacote de cores criado por outros desenvolvedores da linguagem R e expandir seus horizontes.

Cores padrão

Para começar, o padrão inicial de cores do R é expresso nestas cores: Black (preto), red (vermelho), green (verde), blue (azul), cyan, (ciano), magenta (magenta), yellow (amarelo) e gray (cinza). Que podem ser vistas chamando a função palette() e encontrando seu resultado. Estes valores também podem ser visualizados em um gráfico, usando a posição (em ordem) crescente destes valores. Veja o exemplo abaixo sobre isso:

 

coresBasicas <- c(1:8)
barplot(coresBasicas, col=coresBasicas)

 

Esta geração de cores apresentadas no gráfico de barras, significa que a cor do elemento 1 é a representada por preto, a cor do elemento 2 é representada por vermelho, e assim por diante seguindo os valores apresentados pela função palette().

gráfico de barras colorido

Se usar um pacote de funções para criar interpolação de cores, como um degradê simples, passando um nome de cor para iniciar o degradê e um para terminar, é possível montar gráficos com cores mais interessantes, como este exemplo abaixo:

Degradê

a <- c(1:10)
corDegrade <- colorRampPalette(c("red","yellow")) # Degradê de vermelho para amarelo
corDegrade(10)
barplot(a, col=corDegrade(10))

 

No qual a variável corDegrade recebe os elementos interpolados partindo da cor vermelho (red) para a cor amarelo (yellow). Quando chamado o resultado de corDegrade(10), a linguagem R apresenta 10 elementos de interpolação, no padrão RGB, saindo do vermelho em direção ao amarelo.

corDegrade(10)
[1] "#FF0000" "#FF1C00" "#FF3800" "#FF5500" "#FF7100" "#FF8D00" "#FFAA00" "#FFC600" [9] "#FFE200" "#FFFF00"

 

Este mesmo processo pode ser usado para informar o gráfico que deve usar estes valores para plotar cada barra do gráfico através do parâmetro col=corDegrade(10).

gráfico de barras colorido

Com pacote colorRampPalette

As cores informadas para o pacote colorRampPalette ficam a seu critério, podendo, por exemplo, ser de azul escuro (darkblue) para azul claro (lightblue). Veja como fica no exemplo abaixo:

 

color <- colorRampPalette(c("darkblue","lightblue"))
color(10)
barplot(a, col=color(10))

gráfico de barras colorido

Esta variação de cores não precisa ser necessariamente entre apenas duas cores, você pode colocar algumas a mais, como no exemplo abaixo, que é pra variar entre as cores de Vermelho, Amarelo e Verde:

color <- colorRampPalette(c("red","yellow", "green"))
color(10)
barplot(a, col=color(10))

 

Neste caso, quando você olhar os 10 elementos gerados por color(10), encontrará as variações de vemelho passando para amarelo e então para verde.

color(10)
[1] "#FF0000" "#FF3800" "#FF7100" "#FFAA00" "#FFE200" "#E2FF00" "#AAFF00" "#71FF00" [9] "#38FF00" "#00FF00"

E o gráfico fica assim:

gráfico de barras colorido

Com pacote RColorBrewer

Uma terceira forma de se trabalhar com cores é através de pacotes existentes no CRAN, como por exemplo o RcolorBrewer. O pacote foi criado por Cynthia Brewer para usar, principalmente, em cartografia como descrito em http://colorbrewer2.org.

Ou seja, para usar este pacote, é só fazer a instalação e carregá-lo. Em seguida informa qual é a paleta de cores já pré-configuradas pelo pacote e então faz a plotagem dos dados. Veja como usar isso no código a seguir:

install.packages("RColorBrewer")
library(RColorBrewer)

Após carregar o pacote, chame o gráfico passando as cores que serão plotadas.

cores <- brewer.pal(10, "Dark2")
barplot(a, col=cores)

O resultado é o gráfico com estes padrões de cores:

gráfico de barras colorido

Neste pacote RcolorBrewer existe uma quantidade interessante de paleta de cores disponíveis. Caso queira visualizar todas as opções, chame a função abaixo:

display.brewer.all()

Este código chama uma renderização de tela com as variações de cores em casa paleta.

paleta de cores

Para usar uma destas combinações, basta informar o nome no parâmetro que será consumido na hora de plotar o gráfico. Por exemplo, para ver o gráfico usando as cores configuradas como Set2, use o código a seguir:

cores <- brewer.pal(10, "Set2")
barplot(a, col=cores)

 

gráfico de barras colorido

Outros exemplos…

Todos estes tipos de cores apresentados funcionam com outros gráficos também. Como exemplo apresentado no post Plotando gráficos de caixas com dados sumarizados de média, mediana e quartis com R você pode mudar o conjunto de cores apresentados, apenas mudando o parâmetro Col que informa as cores a serem utilizadas. Veja abaixo o código e o resultado:

cores <- brewer.pal(3, "Dark2")

boxplot(IdadeEsposa~MetodoContraceptivo, data=data, col=(cores),
   ylab="Idade Mulher", xlab="Método Contraceptivo",
   main="Boxplot de uso de métodos contraceptivos" )

 

Onde usamos a paleta Dark2 e conseguimos o resultado:

gráfico de caixa colorido

Ou então com a paleta Paired

cores <- brewer.pal(3, "Paired")

boxplot(IdadeEsposa~MetodoContraceptivo, data=data, col=(cores),
   ylab="Idade Mulher", xlab="Método Contraceptivo",
   main="Boxplot de uso de métodos contraceptivos" )

Para criar o gráfico abaixo:

gráfico de caixa colorido

Estes padrões de cores de se trabalhar com R podem facilitar muito o entendimento de um gráfico, onde por exemplo, os menores valores podem ser intensidades mais claras e os maiores valores podem ser representados com intensidade mais escura. A mudança de cores é legal, mas acima de tudo, isso facilita a nossa visão do que é importante e o que é menos relevante na hora de analisar um gráfico e tomar uma decisão. Espero que seja útil pra vocês J

Sobre Diego Nogare 346 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.