Escolher cores para gráficos e mapas, algumas vezes não é tarefa fácil. Tentar combina-las, aleatóriamente, na maioria das vezes revela-se uma árdua tarefa e as chances de resultados não satisfátorios são grandes. Para não especialistas, a melhor opção parece ser escolher dentre as paletas de cores disponíveis por diversos pacotes. Porém, o problema é que nem sempre uma paleta de um determinado pacote combina com os dados que quer expressar. Assim, a melhor opção parece ser usar as paletas existentes modificando-as e combinando-as, quando necessário. Felizmente, existe um pacote que reune as paletas exsitente em outros pacotes. Trata-se do Paletteer.

Os autores do pacote mantém uma excelente página mostrando todos os palettes existentes no Paletteer.

Neste tutorial pretendo explorar algumas das paletas de cores existêntes bem como a possibilidade de combina-las e modifica-las.

Carregar pacote

library(paletteer)
## Warning: package 'paletteer' was built under R version 3.6.1

Características dos paletes:

Existem três tipos de paletas: contínuas, discretas e dinâmicas. Cada um deses contém diferentes sub-tipos.

Nomes e característics dos paletes contínuos

head(palettes_c_names, 10)
##          package    palette       type
## 1  gameofthrones  baratheon sequential
## 2  gameofthrones    greyjoy sequential
## 3  gameofthrones   jon_snow sequential
## 4  gameofthrones  lannister sequential
## 5  gameofthrones    martell sequential
## 6  gameofthrones      stark sequential
## 7  gameofthrones     stark2 sequential
## 8  gameofthrones  targaryen sequential
## 9  gameofthrones targaryen2 sequential
## 10 gameofthrones      tully sequential
#Nomes dos pacotes
unique(palettes_c_names$package)
## [1] "gameofthrones" "ggthemes"      "grDevices"     "harrypotter"  
## [5] "oompaBase"     "palr"          "pals"          "scico"        
## [9] "viridis"
#Sub-tipos de paletas contínuas
unique(palettes_c_names$type)
## [1] "sequential" "diverging"

Nomes e característics dos paletes discretos

head(palettes_d_names, 10)
##      package             palette length        type
## 1    awtools           a_palette      8 qualitative
## 2    awtools          a_spalette      4 qualitative
## 3    awtools            mpalette      9 qualitative
## 4    awtools            ppalette      8 qualitative
## 5    awtools            spalette      6 qualitative
## 6  dichromat      BrowntoBlue.10     10   diverging
## 7  dichromat      BrowntoBlue.12     12   diverging
## 8  dichromat BluetoDarkOrange.12     12   diverging
## 9  dichromat BluetoDarkOrange.18     18   diverging
## 10 dichromat    DarkRedtoBlue.12     12   diverging
#Nomes dos pacotes
unique(palettes_d_names$package)
##  [1] "awtools"         "dichromat"       "dutchmasters"   
##  [4] "ggsci"           "ggpomological"   "ggthemes"       
##  [7] "ghibli"          "grDevices"       "jcolors"        
## [10] "LaCroixColoR"    "NineteenEightyR" "nord"           
## [13] "ochRe"           "palettetown"     "pals"           
## [16] "Polychrome"      "quickpalette"    "rcartocolor"    
## [19] "RColorBrewer"    "Redmonder"       "RSkittleBrewer" 
## [22] "tidyquant"       "wesanderson"     "yarrr"
#Sub-tipos de paletas discretas
unique(palettes_d_names$type)
## [1] "qualitative" "diverging"   "sequential"

Nomes e característics dos paletes dinâmicos

head(palettes_dynamic_names, 10)
##        package       palette length       type
## 1  cartography      blue.pal     20 sequential
## 2  cartography    orange.pal     20 sequential
## 3  cartography       red.pal     20 sequential
## 4  cartography     brown.pal     20 sequential
## 5  cartography     green.pal     20 sequential
## 6  cartography    purple.pal     20 sequential
## 7  cartography      pink.pal     20 sequential
## 8  cartography      wine.pal     20 sequential
## 9  cartography      grey.pal     20 sequential
## 10 cartography turquoise.pal     20 sequential
#Nomes dos pacotes
unique(palettes_dynamic_names$package)
## [1] "cartography"        "ggthemes_ptol"      "ggthemes_solarized"
#Sub-tipos de paletas discretas
unique(palettes_dynamic_names$type)
## [1] "sequential"  "qualitative"

Cores

# Configurar área do plot
par(mar = c(1,0,1,1))

Palete contínuo sequencial

Viridis

# Viridis - verificar os paletes disponíveis nestes pacote
palettes_c_names[palettes_c_names$package=="viridis",]
##     package palette       type
## 201 viridis viridis sequential
## 202 viridis inferno sequential
## 203 viridis   magma sequential
## 204 viridis  plasma sequential
## 205 viridis cividis sequential
# o argumento n controla o número de cores
# 5 cores
col_1 <- paletteer_c(package = viridis, palette = "viridis", n = 5) # 5 cores 

barplot(rep(2, length(col_1)), col = col_1)

# 10 cores 
col_2 <- paletteer_c(package = viridis, palette = "cividis", n = 10)

barplot(rep(2, length(col_2)), col = col_2)

# 30 cores 
col_3 <- paletteer_c(package = viridis, palette = "plasma", n = 30, direction = -1) # 30 cores 

barplot(rep(2, length(col_3)), col = col_3)

# Verificar e guardar código da escala
col_4 <- dput(paletteer_c(package = viridis, palette = "plasma", n = 30, direction = -1))
## c("#F0F921FF", "#F5E926FF", "#FADB24FF", "#FCCC25FF", "#FEBE2AFF", 
## "#FDB130FF", "#FCA338FF", "#F9973EFF", "#F58C46FF", "#F0804EFF", 
## "#EB7556FF", "#E56A5DFF", "#DE6065FF", "#D7566CFF", "#CF4C74FF", 
## "#C7427CFF", "#BE3885FF", "#B52F8CFF", "#AB2494FF", "#A01A9CFF", 
## "#9410A2FF", "#8707A6FF", "#7B02A8FF", "#6E00A8FF", "#6001A6FF", 
## "#5102A3FF", "#43039EFF", "#340498FF", "#240691FF", "#0D0887FF"
## )
# Selecionar itens
col_4 <- col_4[10:25]
barplot(rep(2, length(col_4)), col = col_4)

Outras possibilidades

Ver R color cheatsheet

library("colorspace")
## Warning: package 'colorspace' was built under R version 3.6.1
#pal <- choose_palette()