Gráfico de Halteres [R-ggplot2]
Tags: r, datascience, ptbr, ggplot2
Published: 2024-02-23 13:07:29

Neste post vou apresentar um tipo de gráfico que não é muito utilizado mas ainda sim é muito útil para mostrar a diferença entre grupos. O gráfico de halteres serve para mostrar a diferença de métricas entre dois momentos e tem sua aplicação para evidenciar crescimento (ou decrescimento).

Para a construção desse gráfico, será necessário:

1. A variável Y precisa ser um fator ou qualitativo.
2. A variável X precisa ser distribuída em 2 colunas, onde uma indica o primeiro estado e a segunda indica o segundo estado.

Vamos ao exemplo a seguir:

Imagine que você trabalha em um setor produtivo importante da empresa e gerencia 5 produtos diferentes. Neste gráfico, você quer comparar os diferentes produtos com as taxas de crescimento de vendas entre 2019 e 2020. Veja os dados a seguir:

```R
# Criando o data-frame com os dados:

crescimento = data.frame(
  produto = c("Produto A","Produto B","Produto C", "Produto D"),
  cresc_2019 = c(0.1, 0.15, 0.07, 0.25),
  cresc_2020 = c(0.15, 0.25, 0.54, 0.35)
)

crescimento
```

```R
##     produto cresc_2019 cresc_2020
## 1 Produto A       0.10       0.15
## 2 Produto B       0.15       0.25
## 3 Produto C       0.07       0.54
## 4 Produto D       0.25       0.35
```

Desta forma temos então, como exemplo, que o Produto A cresceu 10% (0.10) em 2019 e 15% (0.15) em 2020. Em seguida vamos construir um gráfico que mostre a evolução destas taxas de crescimento entre produtos entre 2019 e 2020. Você irá precisar do pacote ggalt que você pode instalar com o comando `install.packages(“ggalt”)` se você não o tiver instalado:

```R
library(tidyverse)
library(ggplot2)
library(ggalt)

crescimento %>%
  ggplot(aes(y = produto, x = cresc_2019, xend = cresc_2020)) +
  geom_dumbbell()
```


![Gráfico de halteres padrão, sem personalização de cores e temas.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b8oph4d25icomqtofbty.png)

Esse gráfico não parece muito interessante nesse momento pois necessita de alguma personalização. Mas alguns insights já podem ser observados como por exemplo o salto de crescimento do Produto C; o Produto D saiu na frente em 2019 mas perdeu em crescimento para o Produto C; o baixo crescimento do Produto A, entre outros insights.

Para personalizar e deixar o gráfico mais interessante, vamos à seguir:

```R
crescimento %>%
  ggplot(aes(y = produto, x = cresc_2019, xend = cresc_2020, group = produto)) +
  geom_dumbbell(alpha = 0.5) +
  scale_x_continuous(label=scales::percent) + # Transformar eixo em %
  geom_point(aes(y = produto, x = cresc_2020, color = "2020")) + # Cores dos pontos 2020
  geom_point(aes(y = produto, x = cresc_2019, color = "2019")) + # Cores dos pontos 2019
  theme_light() + # Tema mais leve/limpo
  labs(
    title = "Taxas de crescimento dos Produtos A-D entre 2019 e 2020.",
    subtitle = "Dados do Departamento de Vendas",
    x = "Taxa de Crescimento (%)",
    y = "",
    color = "Ano de Referência"
  )
```

![Gráfico de halteres personalizado](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/acxjqv6zcu7hldcjvprr.png)

As cores ajudam muito em identificar casos onde o crescimento foi menor de um ano para o outro (não visível no nosso exemplo), e o tema mais limpo sem cor de fundo exalta de forma melhor os pontos e as linhas.

Por hoje é só! Deixe seu comentário se gostou desse conteúdo e sugestões para próximos artigos.