Coloração

Até agora, nosso gráfico de barras está bastante sem graça: a legenda dos eixos não está clara e em cinza parece triste. Vamos mudar isso agora. É importante que, se seguirmos a convenção no ggplot, podemos omitir partes explicativas como data = ... ou mapping = .... Isso significa menos trabalho de escrita! Simplesmente adicionamos cor, adicionando o argumento color dentro de aes() e dizendo por qual variável a cor deve diferir.

Primeiro, vamos adicionar um pouco de cor:

barplot <- ggplot(
  pss, 
  aes(
    edu, 
    color = edu
  )
) +
  geom_bar()

barplot

Vemos que o argumento color apenas altera as linhas de contorno. Para alterar o preenchimento, precisamos usar o argumento fill:

barplot <- ggplot(
  pss, 
  aes(
    edu, 
    fill = edu
  )
) +
  geom_bar() 

barplot

Agora tornamos o gráfico colorido. Mas você também pode definir os valores de cor se quiser determinar o quão colorido o gráfico será. Você pode fazer isso especificando as cores na função geom_bar(). Lá, você fornece tantas cores quanto necessário (nem mais, nem menos!). Uma visão geral dos códigos de cores comuns pode ser encontrada aqui:

  • Rcolor.pdf (209 KB)
  • barplot <- ggplot(
      pss, 
      aes(
        edu, 
        fill = edu
      )
    ) +
      geom_bar(
        fill = c(
          "steelblue", 
          "darkgoldenrod",
          "seagreen", 
          "red4", 
          "orange",
          "darkslategray2"
        )
      ) 
    
    barplot

    Agora você quer que o segundo barra tenha a cor azul. Como você pode mudar isso?

    Você também pode armazenar códigos de cores em um objeto (vetor) e depois chamá-lo na função ggplot(). Isso mantém o código do gráfico mais organizado. É importante que o vetor tenha exatamente o mesmo comprimento que o número de grupos.

    educol = c(
      "steelblue", 
      "darkgoldenrod",
      "seagreen", 
      "red4", 
      "orange",
      "darkslategray2"
    )
    
    barplot <- ggplot(
      pss, 
      aes(
        x = edu, 
        fill = edu
      )
    ) +
      geom_bar(fill = educol) 
    
    barplot

    Ao usar um vetor de cores, você pode usar vetores de cores que diferem no número exato de ocorrências. Se houver poucas cores no vetor de cores, elas se repetirão. No entanto, você não pode usá-las no argumento fill na função geom_bar(), mas sim na função adicional scale_fill_manual():

    # a colourblind-friendly palettes
    cbp1 <- c(
      "#999999", 
      "#E69F00",
      "#56B4E9",
      "#009E73",
      "#F0E442", 
      "#0072B2",
      "#D55E00",
      "#CC79A7"
    )
    
    barplotCb <- ggplot(
      pss, 
      aes(
        edu, 
        fill = edu
      )
    ) + 
      geom_bar() +
      scale_fill_manual(values = cbp1)
    
    barplotCb

    Quando não é possível entregar documentos digitalmente, muitas vezes são usados gráficos em tons de cinza para economizar custos. Para isso, existe a função adicional scale_fill_grey(), que exibe o gráfico automaticamente em tons de cinza:

    barplotGray <- ggplot(
      pss, 
      aes(
        edu, 
        fill = edu
      )
    ) + 
      geom_bar() +
      scale_fill_grey()
    
    barplotGray

    Também existem algumas bibliotecas que contêm paletas de cores pré-definidas. Por exemplo: RColorBrewer ou beyonce. Aqui vamos usar primeiro RColorBrewer. RColorBrewer é normalmente instalado, a biblioteca beyonce é instalada através de uma ferramenta de desenvolvedor. Muitas bibliotecas ainda estão em estágio de desenvolvimento e não estão oficialmente disponíveis, mas podem ser carregadas e usadas através de uma ferramenta de desenvolvedor.

    install.packages("RColorBrewer")
    
    # Installation Entwicklertool
    install.packages(
      "devtools",
      dependencies = TRUE
    )
    
    # Install beyonce palette
    devtools::install_github("dill/beyonce")

    Com RColorBrewer, você pode visualizar as paletas de cores:

    library("RColorBrewer")
    
    display.brewer.all()

    Para poder usar uma dessas paletas do RColorBrewer, você usa a função scale_fill_brewer() e define a paleta de cores dentro dela:

    barplotBrewer <- ggplot(
      pss, 
      aes(
        edu, 
        fill = edu
      )
    ) + 
      geom_bar() +
      scale_fill_brewer(palette = "Dark2")
    
    barplotBrewer

    Para usar a paleta de cores beyonce, siga estes passos: Primeiro, liste todas as paletas de cores disponíveis.

    library("beyonce")
    
    # Ausgabe aller Farbpaletten [beginnend bei 1]
    par(mfrow=c(26,5))
    for(i in 1:130) print(beyonce_palette(i))

    No exemplo, escolhemos a paleta de cores 25. Para chamar a paleta de cores específica, utilize a função beyonce_palette() da biblioteca beyonce e forneça o número da paleta como único argumento. Para utilizá-la, utilize a função adicional scale_fill_manual() no ggplot.

    barplotBeyonce <- ggplot(
      pss, 
      aes(
        edu, 
        fill = edu
      )
    ) +
      geom_bar() +
      scale_fill_manual(values = beyonce_palette(25)) 
    
    barplotBeyonce

    Vamos lá e adicione rótulos de valores!