Gráfico de barras & Histograma em R (com exemplo)

Índice:

Anonim

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.

  1. O primeiro conta o número de ocorrências entre os grupos.
  2. 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")