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:
barplot <- ggplot(
pss,
aes(
edu,
fill = edu
)
) +
geom_bar(
fill = c(
"steelblue",
"darkgoldenrod",
"seagreen",
"red4",
"orange",
"darkslategray2"
)
)
barplot
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!