Criar histograma com ggplot em R

Jinku Hu 15 fevereiro 2024
  1. Use geom_histogram para criar um histograma com ggplot em R
  2. Use os parâmetros fill, colour e size para modificar os visuais do histograma em R
  3. Use facet_wrap para construir vários histogramas agrupados por categoria em R
Criar histograma com ggplot em R

Este artigo irá demonstrar como criar um histograma com ggplot em R.

Use geom_histogram para criar um histograma com ggplot em R

Um histograma simples é construído usando a função geom_histogram e só precisa de uma variável para desenhar o gráfico. Neste caso, usamos o conjunto de dados diamonds, nomeadamente, a coluna price dele, para especificar o mapeamento para o eixo x. geom_histogram escolhe automaticamente o tamanho da caixa e os pontos de dados de escala, a menos que explicitamente passado pelo usuário.

library(ggplot2)

p1 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram()

p1

R ggplot histograma 1

O exemplo a seguir expande o fragmento de código anterior para especificar os pontos de interrupção em cada eixo usando as funções scale_x_continuous e scale_y_continuous. O parâmetro breaks é utilizado para passar os valores gerados pela função seq. Os parâmetros seq são de leitura intuitiva, pois formam o padrão - (from, to, by). Também utilizamos a função grid.arrange para exibir dois gráficos lado a lado para comparação visual.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram()

p2 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram() +
  scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
  scale_x_continuous(breaks = seq(0, 18000, 2000))

grid.arrange(p1, p2, nrow = 2)

histograma 2 do ggplot

Use os parâmetros fill, colour e size para modificar os visuais do histograma em R

Os parâmetros comuns como fill, colour e size podem ser utilizados para alterar o visual das caixas do gráfico. O parâmetro fill especifica a cor pela qual as caixas são preenchidas; em contraste, colour é usado para os traços do depósito. size leva um valor numérico para denotar a largura dos traços do depósito. Observe também que o fragmento de código a seguir adiciona o parâmetro name a ambos os eixos.

library(ggplot2)
library(gridExtra)

p3 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown") +
  scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
  scale_x_continuous(breaks = seq(0, 18000, 2000))

p4 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown", size = .3) +
  scale_y_continuous(breaks = seq(1000, 14000, 2000), name = "Number of diamonds" ) +
  scale_x_continuous(breaks = seq(0, 18000, 2000), name = "Price" )

grid.arrange(p3, p4, nrow = 2)

histograma 3 do ggplot

Use facet_wrap para construir vários histogramas agrupados por categoria em R

A função facet_wrap pode ser usada para desenhar vários histogramas com base no conjunto de variáveis. O conjunto de dados diamonds fornece dimensões suficientes para escolher as variáveis ​​de uma de suas colunas. Por exemplo, escolhemos a coluna cut para exibir histogramas de price diferentes para cada tipo. A função theme também pode ser combinada com o geom_histogram para especificar a formatação personalizada para os elementos do gráfico.

library(ggplot2)

p5 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown", size = .3) +
  scale_y_continuous( name = "Number of diamonds" ) +
  scale_x_continuous( name = "Price" ) +
  facet_wrap(~cut) +
  theme(
    axis.title.x = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "black"
    ),
    axis.title.y = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "black"
    ),
    plot.background = element_rect("yellow"))


p5

histograma 4 do ggplot

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - R Plot