Gráfico de barras e histograma em R com exemplo

⚡ Resumo Inteligente

Os gráficos de barras e histogramas em R são construídos com ggplot2, usando geom_bar() para contagens categóricas e geom_histogram() para distribuições contínuas. Este passo a passo personaliza cores, grupos e histogramas.ping, empilhamento, orientação, agrupamento e rótulos internos no conjunto de dados mtcars.

  • 📊 Principal diferencial: Um gráfico de barras resume uma variável categórica, enquanto um histograma divide uma única variável contínua em intervalos.
  • 🧱 Gramática dos Gráficos: Cada gráfico combina um conjunto de dados e um mapa aes().pinge um objeto geométrico unido pelo sinal de mais.
  • ???? Controle de cores: Coloque o preenchimento dentro de geom_bar() para uma cor uniforme e dentro de aes() para colorir as barras por grupo.
  • 📐 Ajustes de posição: position = “fill” converte contagens em porcentagens e position_dodge() coloca barras agrupadas lado a lado.
  • 🔢 Representação gráfica de valores: Utilize o parâmetro `stat = “identity”` quando o eixo y já contiver uma estatística calculada, como a média de um grupo.
  • 📏 Agrupamento de histogramas: Defina os intervalos (bins) ou a largura dos intervalos (binwidth) em geom_histogram(), pois o valor padrão de 30 intervalos raramente é adequado para os dados.

Histograma de barras em R

O que é um gráfico de barras em R?

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. A primeira contagem contabiliza o número de ocorrências em cada grupo.
  2. O segundo gráfico mostra uma estatística resumida (mínimo, máximo, média, etc.) de uma variável no eixo y.

Você utilizará o conjunto de dados mtcars, que possui 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

Como os histogramas são muito semelhantes, vale a pena esclarecer a diferença antes de escrever qualquer código.

Gráfico de barras versus histograma em R: principais diferenças

Os dois gráficos são semelhantes e são constantemente confundidos. Eles respondem a perguntas diferentes e usam objetos geométricos diferentes.

Critérios Gráfico de Barras Histograma
Variável do eixo X Categórico ou fatorial Contínuo e numérico
O que uma barra representa Uma categoria Um intervalo, ou classe, de valores
Espaços entre as barras Sim, as categorias são separadas. Não, as lixeiras são adjacentes.
Pedido de bar Pode ser reorganizado livremente Corrigido pela escala numérica
Pergunta respondida Como os grupos se comparam? Como uma variável é distribuída?
objeto ggplot2 barra_geométrica() geom_histograma()

A regra prática é a seguinte: se reordenar as barras ainda fizer sentido, você tem um gráfico de barras. Se reordená-las destruir o significado, você tem um histograma. Para resumos baseados em quartis da mesma variável contínua, use um gráfico de barras. gráfico de caixa.

Como criar um gráfico de barras em R

Para criar 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 object 

arguments: 
data: dataset used to plot the graph 
mapping: Control the x and y-axis 
geometric 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()` 

Este tutorial se concentra no objeto geométrico geom_bar(), que desenha o gráfico de barras, e no geom_histogram() para dados contínuos.

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 chart
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar()

Code Explicação

  • Você passa o conjunto de dados mtcars para o ggplot.
  • Dentro do argumento aes(), você define o eixo x para a variável de fator cyl.
  • O sinal + significa que você deseja que R continue lendo o código. Isso torna o código mais legível ao quebrá-lo.
  • Use geom_bar() para o objeto geométrico.

Saída:

Gráfico de barras: contagem

Observação: certifique-se de converter as variáveis ​​em um fator, caso contrário R tratará as variáveis ​​como numéricas. Veja o exemplo abaixo.

Gráfico de barras: contagem

Personalize o gráfico

Quatro argumentos podem ser passados ​​para personalizar o gráfico:

- `stat`: Controls what is plotted on the y-axis. By default `count`, which tallies rows. To plot a value you already computed, pass `stat = "identity"`
- `alpha`: Control density of the color
- `fill`: Change the color of the bar
- `size`: Control the size the bar	

Mude 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 bars
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar(fill = "coral") +
    theme_classic()

Code Explicação

  • As cores das barras são controladas pelo mapa aes()ping dentro do objeto geométrico (ou seja, não dentro do ggplot()). Você pode alterar a cor com os argumentos de preenchimento. Aqui, você escolheu a cor coral.

Saída:

Mude a cor das barras

Você pode usar este código:

grDevices::colors()

para ver todas as cores disponíveis em R. São cerca de 650 cores.

Mude a intensidade

Você pode aumentar ou diminuir a intensidade da cor das barras

# Change intensity
ggplot(mtcars,
        aes(factor(cyl))) +
    geom_bar(fill = "coral",
        alpha = 0.5) +
    theme_classic()

Code Explicação

  • Para aumentar/diminuir a intensidade da barra, você pode alterar o valor de alfa. Um valor alto de alfa aumenta a intensidade, e um valor baixo de alfa reduz a intensidade. O valor de alfa varia de 0 a 1. Com 1, a cor corresponde exatamente à paleta; com 0, a barra fica invisível. Aqui, você escolheu alfa = 0.5.

Saída:

Alterar a intensidade

Cor por grupos

Você pode alterar as cores das barras, ou seja, uma cor diferente para cada grupo. Por exemplo, a variável cyl tem três níveis, então você pode traçar o gráfico de barras com três cores.

# Color by group
ggplot(mtcars, aes(factor(cyl),
        fill = factor(cyl))) +
    geom_bar()

Code Explicação

  • O argumento `fill` dentro da função `aes()` altera a cor da barra. Você altera a cor definindo `fill = variável do eixo x`. No seu exemplo, a variável do eixo x é `cyl`; `fill = factor(cyl)`.

Saída:

Cor por grupos

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ões automáticas e manuais com base no tipo de cilindro.

Você procederá da seguinte forma:

  • Etapa 1: crie o quadro de dados com o conjunto de dados mtcars
  • Etapa 2: Rotule a variável am com auto para transmissão automática e man para transmissão manual. Converta am e cyl como um fator para que você não precise usar factor() na função ggplot().
  • Passo 3: Trace o gráfico de barras para contar o número de transmissões por cilindro
library(dplyr)
# Step 1
data <- mtcars %>% 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

Com o conjunto de dados pronto, você pode plotar o gráfico:

# Passo 3

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar() +
    theme_classic()

Code Explicação

  • A chamada ggplot() recebe os dados do conjunto de dados e o mapa aes().ping.
  • No aes() você inclui a variável do eixo x e qual variável é necessária para preencher a barra (ou seja, sou)
  • geom_bar(): Crie o gráfico de barras

Saída:

Adicione um grupo nas barras

O mapaping A barra será preenchida com duas cores, uma para cada nível. É muito fácil alterar 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()

Code Explicação

  • Use position = “fill” no argumento geom_bar() para criar um gráfico com porcentagem no eixo y.

Saída:

Gráfico de barras em porcentagem

Barras lado a lado

É fácil traçar o gráfico de barras com a variável de grupo lado a lado.

# Bar chart side by side
ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = position_dodge()) +
    theme_classic()

Code Explicação

  • position=position_dodge(): Diz explicitamente como organizar as barras

Saída:

Barras lado a lado

Gráfico de barras com estatística resumida

Na segunda parte do tutorial, o eixo y exibe um valor calculado em vez de uma contagem. Observe que este ainda é um gráfico de barras: um histograma propriamente dito será abordado mais adiante e utiliza um objeto geométrico diferente.

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:

  • Passo 1: Crie uma nova variável com a média de milhas por galão por cilindro
  • Etapa 2: crie um histograma básico
  • Etapa 3: alterar a orientação
  • Passo 4: Mude a cor
  • Etapa 5: alterar o tamanho
  • Etapa 6: adicione rótulos ao gráfico

Passo 1) Crie uma nova variável

Você cria um quadro de dados chamado 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 média_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))

Passo 2) Crie um histograma básico

Você pode plotar o histograma. Ele ainda não está suficientemente refinado para ser entregue a um cliente, mas já mostra a tendência.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity")

Code Explicação

  • O aes() agora possui duas variáveis. A variável cyl refere-se ao eixo x, e a média_mpg é o eixo y.
  • Você passa `stat = “identity”` para que `geom_bar()` use a variável do eixo y como ela é, em vez de contar as linhas. O valor padrão para `geom_bar()` é `stat = “count”`.

Saída:

Histograma

Passo 3) Alterar 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()

Code Explicação

  • Você pode controlar a orientação do gráfico com coord_flip().

Saída:

Histograma

Passo 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()

Code Explicação

  • Você pode plotar o gráfico por grupos com o mapa fill=cylpingO R cuida automaticamente das cores com base nos níveis da variável cyl.

Saída:

Histograma

Passo 5) Mude o tamanho

Para deixar 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()

Code Explicação

  • O argumento `width` dentro de `geom_bar()` controla a espessura da barra. Um valor maior a torna mais larga.
  • O gráfico é armazenado no grafo de objetos, pois a próxima etapa o reutiliza sem alterações. Armazenar gráficos intermediários mantém o código legível.

Saída:

Histograma

Passo 6) Adicione rótulos ao gráfico

A última etapa adiciona o valor de mean_mpg como um rótulo dentro de cada barra.

graph +
    geom_text(aes(label = mean_mpg),
        hjust = 1.5,
        color = "white",
        size = 3) +
    theme_classic()

Code Explicação

  • A função geom_text() é útil para controlar a estética do texto.
    • label=: Adicione um rótulo dentro das barras
    • mean_mpg: Use a variável mean_mpg para o rótulo
  • O parâmetro `hjust` controla a posição do rótulo ao longo da barra. Valores próximos de 1 posicionam o rótulo perto da extremidade da barra, enquanto valores maiores o empurram para mais perto do eixo. Se a orientação do gráfico for vertical, altere `hjust` para `vjust`.
  • color=”branco”: Altere a cor do texto. Aqui você usa a cor branca.
  • size=3: Defina o tamanho do texto.

Saída:

Histograma

Como ordenar e rotular barras em um gráfico de barras no R

Dois retoques finais diferenciam um rascunho de um gráfico pronto para publicação: ordenar as barras por valor e rotular os eixos corretamente.

Reordenando barras. Por padrão, o ggplot2 organiza os níveis dos fatores em ordem alfabética, o que raramente é a ordem mais informativa. Para ordenar por uma segunda variável, envolva a variável x em uma função reorder():

# Sort the bars from lowest to highest mean_mpg
ggplot(data_histogram, aes(x = reorder(cyl, mean_mpg), y = mean_mpg)) +
    geom_bar(stat = "identity", fill = "coral") +
    theme_classic()

Adicione um sinal de menos ao prefixo da variável de ordenação, reorder(cyl, -mean_mpg), para inverter a direção.

Adicionando títulos e rótulos de eixos. A função labs() define todos os elementos de texto em uma única chamada:

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity") +
    labs(title = "Average fuel economy by cylinder count",
        subtitle = "mtcars dataset",
        x = "Number of cylinders",
        y = "Mean miles per gallon",
        fill = "Cylinders",
        caption = "Source: mtcars") +
    theme_classic()

Defina fill = NULL dentro de labs() para remover completamente o título da legenda e use theme(legend.position = “none”) para remover a legenda quando o eixo x já nomear os grupos.

Escolha suas próprias cores. Substitua a paleta padrão por uma paleta específica para que o gráfico corresponda ao estilo da sua empresa:

scale_fill_manual(values = c("4" = "#0e9cd1", "6" = "coral", "8" = "grey40"))

Como criar um histograma em R com geom_histogram()

Um histograma mostra como uma única variável contínua está distribuída. Em vez de contar categorias, o ggplot2 divide o intervalo numérico em classes e conta quantas observações se enquadram em cada uma delas.

library(ggplot2)
# Most basic histogram
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram()

O R exibe uma mensagem recomendando que você escolha um número melhor de intervalos (bins), pois o valor padrão de 30 intervalos é arbitrário. Dois argumentos controlam isso:

  • caixas: o número de intervalos em que o intervalo será dividido.
  • largura bin: a largura de cada intervalo, expressa nas unidades da variável. Use esta opção quando as unidades forem significativas.
# Set the number of bins
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(bins = 10, fill = "coral", color = "white") +
    theme_classic()

# Or set the width of each bin instead
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(binwidth = 4, fill = "coral", color = "white") +
    theme_classic()

O agrupamento (binning) é a escolha mais importante em um histograma. Poucos intervalos podem ocultar estruturas reais, como um segundo pico; muitos intervalos transformam o gráfico em ruído. Experimente vários valores antes de escolher um.

Comparação de grupos. Atribua um fator para preencher e defina a posição para que as distribuições permaneçam legíveis:

ggplot(mtcars, aes(x = mpg, fill = factor(cyl))) +
    geom_histogram(bins = 10, position = "identity", alpha = 0.5) +
    theme_classic()

Com `position = “identity”` e um valor de `alpha` reduzido, os histogramas se sobrepõem, permitindo a comparação direta das formas. Use `position = “dodge”` se preferir visualizar os intervalos lado a lado.

Densidade em vez de contagens. Quando os grupos tiverem tamanhos diferentes, plote a densidade de forma que as áreas sejam comparáveis ​​e sobreponha uma curva suavizada:

ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(aes(y = after_stat(density)), bins = 10,
        fill = "coral", alpha = 0.6) +
    geom_density(color = "steelblue", linewidth = 1) +
    theme_classic()

Gráfico de barras e histograma em R: Code Referência

Um gráfico de barras é adequado para um eixo x categórico, onde o eixo y representa uma contagem ou uma estatística descritiva. A tabela abaixo lista a chamada do ggplot2 para cada variante abordada acima:

Objetivo Code
Contar
ggplot(df, aes(x = factor(x1))) + geom_bar()
Conte com diferentes cores de preenchimento
ggplot(df, aes(x = factor(x1), fill = factor(x1))) + geom_bar()
Conte com grupos, empilhados
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar()
Conte com grupos, lado a lado
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = position_dodge())
Conte com grupos, empilhados em%
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = "fill")
Valores (estatística resumida)
ggplot(df, aes(x = factor(x1), y = x2)) + geom_bar(stat = "identity")
Histograma de uma variável contínua
ggplot(df, aes(x = x1)) + geom_histogram(bins = 30)

Perguntas Frequentes

Use um histograma quando a variável do eixo x for contínua e você quiser visualizar sua distribuição. Use um gráfico de barras quando o eixo x contiver categorias distintas e você quiser compará-las.

Dentro de `aes()`, `fill` mapeia uma variável para a cor, de modo que cada grupo recebe sua própria tonalidade. Fora de `aes()`, dentro de `geom_bar()`, `fill` é um valor fixo aplicado a cada barra.

Não existe uma resposta universal. Comece com a raiz quadrada da contagem de observações e, em seguida, ajuste. Poucas categorias podem ocultar estruturas, como um segundo pico, enquanto muitas categorias produzem um gráfico ruidoso e irregular.

Os histogramas são o primeiro passo padrão na análise exploratória de dados para projetos de IA, revelando assimetria, valores discrepantes e desequilíbrio de classes antes mesmo do treinamento de qualquer modelo. Em seguida, os gráficos de barras resumem a importância das variáveis ​​e a frequência das categorias.

Sim. Assistentes de IA podem criar camadas ggplot2 a partir de uma descrição simples do gráfico e explicar erros como a falta de um argumento estatístico. Sempre execute o código gerado com seus próprios dados para confirmar o mapa.ping está certo.

Resuma esta postagem com: