Um gráfico de barras é uma ótima maneira de exibir variáveis categóricas no eixo x. Este tipo de gráfico denota dois aspectos no eixo y.
- O primeiro conta o número de ocorrências entre os grupos.
- O segundo mostra uma estatística resumida (mín, máx, média e assim por diante) de uma variável no eixo y.
Você usará o conjunto de dados mtcars com as seguintes variáveis:
- cil: Número do cilindro do carro. Variável numérica
- am: Tipo de transmissão. 0 para automático e 1 para manual. Variável numérica
- mpg: milhas por galão. Variável numérica
Neste tutorial, você aprenderá
- Como criar um gráfico de barras
- Mudar a cor das barras
- Mude a intensidade
- Colorir por grupos
- Adicione um grupo nas barras
- Gráfico de barras em porcentagem
- Barras laterais
- Histograma
Como criar um gráfico de barras
Para criar um gráfico em R, você pode usar a biblioteca ggplot que cria gráficos prontos para publicação. A sintaxe básica desta biblioteca é:
ggplot(data, mapping = aes()) +geometric objectarguments:data: dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common objects are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
Neste tutorial, você está interessado no objeto geométrico geom_bar () que cria o gráfico de barras.
Gráfico de barras: contagem
Seu primeiro gráfico mostra a frequência do cilindro com geom_bar (). O código abaixo é a sintaxe mais básica.
library(ggplot2)# Most basic bar chartggplot(mtcars, aes(x = factor(cyl))) +geom_bar()
Explicação do código
- Você passa o conjunto de dados mtcars para o ggplot.
- Dentro do argumento aes (), você adiciona o eixo x como uma variável de fator (cil)
- O sinal + significa que você deseja que R continue lendo o código. Torna o código mais legível ao quebrá-lo.
- Use geom_bar () para o objeto geométrico.
Resultado:
Nota : certifique-se de converter as variáveis em um fator, caso contrário, R trata as variáveis como numéricas. Veja o exemplo abaixo.
Personalize o gráfico
Quatro argumentos podem ser passados para personalizar o gráfico:
- `stat`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, pass `stat = "identity"`- `alpha`: Control density of the color- `fill`: Change the color of the bar- `size`: Control the size the bar
Mudar a cor das barras
Você pode alterar a cor das barras. Observe que as cores das barras são todas semelhantes.
# Change the color of the barsggplot(mtcars, aes(x = factor(cyl))) +geom_bar(fill = "coral") +theme_classic()
Explicação do código
- As cores das barras são controladas pelo mapeamento aes () dentro do objeto geométrico (ou seja, não no ggplot ()). Você pode alterar a cor com os argumentos de preenchimento. Aqui, você escolhe a cor do coral.
Resultado:
Você pode usar este código:
grDevices::colors()
para ver todas as cores disponíveis na R. São cerca de 650 cores.
Mude a intensidade
Você pode aumentar ou diminuir a intensidade da cor das barras
# Change intensityggplot(mtcars,aes(factor(cyl))) +geom_bar(fill = "coral",alpha = 0.5) +theme_classic()
Explicação do código
- Para aumentar / diminuir a intensidade da barra, você pode alterar o valor do alfa. Um alfa grande aumenta a intensidade e um alfa baixo reduz a intensidade. alfa varia de 0 a 1. Se 1, a cor é a mesma da paleta. Se 0, a cor é branca. Você escolhe alfa = 0,1.
Resultado:
Colorir por grupos
Você pode alterar as cores das barras, o que significa uma cor diferente para cada grupo. Por exemplo, a variável cil tem três níveis, então você pode plotar o gráfico de barras com três cores.
# Color by groupggplot(mtcars, aes(factor(cyl),fill = factor(cyl))) +geom_bar()
Explicação do código
- O argumento fill dentro de aes () permite alterar a cor da barra. Você altera a cor definindo preenchimento = variável do eixo x. Em seu exemplo, a variável do eixo x é cyl; preencher = fator (cil)
Resultado:
Adicione um grupo nas barras
Você pode dividir ainda mais o eixo y com base em outro nível de fator. Por exemplo, você pode contar o número de transmissão automática e manual com base no tipo de cilindro.
Você procederá da seguinte forma:
- Etapa 1: Criar o quadro de dados com o conjunto de dados mtcars
- Etapa 2: identifique a variável am com automático para transmissão automática e homem para transmissão manual. Converta am e cyl como um fator para que você não precise usar factor () na função ggplot ().
- Etapa 3: traçar o gráfico de barras para contar o número de transmissão por cilindro
library(dplyr)# Step 1data <- mtcars % > %#Step 2mutate(am = factor(am, labels = c("auto", "man")),cyl = factor(cyl))
Você tem o conjunto de dados pronto, você pode plotar o gráfico;
# Etapa 3
ggplot(data, aes(x = cyl, fill = am)) +geom_bar() +theme_classic()
Explicação do código
- O ggpplot () contém os dados do conjunto de dados e o aes ().
- Em aes () você inclui a variável eixo x e qual variável é necessária para preencher a barra (ou seja, am)
- geom_bar (): Crie o gráfico de barras
Resultado:
O mapeamento preencherá a barra com duas cores, uma para cada nível. É fácil mudar o grupo escolhendo outras variáveis de fator no conjunto de dados.
Gráfico de barras em porcentagem
Você pode visualizar a barra em porcentagem em vez da contagem bruta.
# Gráfico de barras em porcentagem
ggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = "fill") +theme_classic()
Explicação do código
- Use position = "fill" no argumento geom_bar () para criar um gráfico com porcentagem no eixo y.
Resultado:
Barras laterais
É fácil traçar o gráfico de barras com a variável de grupo lado a lado.
# Bar chart side by sideggplot(data, aes(x = cyl, fill = am)) +geom_bar(position = position_dodge()) +theme_classic()
Explicação do código
- position = position_dodge (): explica explicitamente como organizar as barras
Resultado:
Histograma
Na segunda parte do tutorial do gráfico de barras, você pode representar o grupo de variáveis com valores no eixo y.
Seu objetivo é criar um gráfico com a média de milhas por galão para cada tipo de cilindro. Para desenhar um gráfico informativo, você seguirá estas etapas:
- Etapa 1: Crie uma nova variável com a milha média por galão por cilindro
- Etapa 2: crie um histograma básico
- Etapa 3: mude a orientação
- Etapa 4: mude a cor
- Etapa 5: alterar o tamanho
- Etapa 6: adicionar rótulos ao gráfico
Etapa 1) Crie uma nova variável
Você cria um quadro de dados denominado data_histogram que simplesmente retorna a média de milhas por galão pelo número de cilindros do carro. Você chama essa nova variável de mean_mpg e arredonda a média com duas casas decimais.
# Passo 1
data_histogram <- mtcars % > %mutate(cyl = factor(cyl)) % > %group_by(cyl) % > %summarize(mean_mpg = round(mean(mpg), 2))
Etapa 2) Crie um histograma básico
Você pode traçar o histograma. Não está pronto para se comunicar para ser entregue ao cliente, mas nos dá uma intuição sobre a tendência.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity")
Explicação do código
- O aes () agora tem duas variáveis. A variável cyl se refere ao eixo x, e mean_mpg é o eixo y.
- Você precisa passar o argumento stat = "identidade" para se referir à variável no eixo y como um valor numérico. geom_bar usa stat = "bin" como valor padrão.
Resultado:
Etapa 3) Mude a orientação
Você altera a orientação do gráfico de vertical para horizontal.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +geom_bar(stat = "identity") +coord_flip()
Explicação do código
- Você pode controlar a orientação do gráfico com coord_flip ().
Resultado:
Etapa 4) Mude a cor
Você pode diferenciar as cores das barras de acordo com o nível do fator da variável do eixo x.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity") +coord_flip() +theme_classic()
Explicação do código
- Você pode plotar o gráfico por grupos com o mapeamento fill = cyl. R cuida automaticamente das cores com base nos níveis da variável cil
Resultado:
Etapa 5) Alterar o tamanho
Para tornar o gráfico mais bonito, você reduz a largura da barra.
graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +geom_bar(stat = "identity",width = 0.5) +coord_flip() +theme_classic()
Explicação do código
- O argumento de largura dentro de geom_bar () controla o tamanho da barra. Um valor maior aumenta a largura.
- Observe, você armazena o gráfico no gráfico de variável. Você faz isso porque a próxima etapa não mudará o código do gráfico de variável. Além disso, melhora a legibilidade do código.
Resultado:
Etapa 6) Adicionar rótulos ao gráfico
A última etapa consiste em adicionar o valor da variável mean_mpg no rótulo.
graph +geom_text(aes(label = mean_mpg),hjust = 1.5,color = "white",size = 3) +theme_classic()
Explicação do código
- A função geom_text () é útil para controlar a estética do texto.
- rótulo =: adiciona um rótulo dentro das barras
- mean_mpg: Use a variável mean_mpg para o rótulo
- hjust controla a localização do rótulo. Valores fechados em 1 exibem o rótulo na parte superior da barra e valores mais altos trazem o rótulo para baixo. Se a orientação do gráfico for vertical, altere hjust para vjust.
- color = "white": altera a cor do texto. Aqui você usa a cor branca.
- size = 3: Defina o tamanho do texto.
Resultado:
Resumo
Um gráfico de barras é útil quando o eixo x é uma variável categórica. O eixo y pode ser uma contagem ou uma estatística resumida. A tabela abaixo resume como controlar o gráfico de barras com ggplot2:
Objetivo |
código |
---|---|
Contar |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Conte com cor diferente de preenchimento |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Conte com grupos, empilhados |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Conte com grupos, lado a lado |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
Contar com grupos, empilhados em% |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Valores |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |