DEV Community

Danilo Scorzoni Ré
Danilo Scorzoni Ré

Posted on

1

Gráfico de Halteres [R-ggplot2]

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:

# 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
Enter fullscreen mode Exit fullscreen mode
##     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
Enter fullscreen mode Exit fullscreen mode

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:

library(tidyverse)
library(ggplot2)
library(ggalt)

crescimento %>%
  ggplot(aes(y = produto, x = cresc_2019, xend = cresc_2020)) +
  geom_dumbbell()
Enter fullscreen mode Exit fullscreen mode

Gráfico de halteres padrão, sem personalização de cores e temas.

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:

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"
  )
Enter fullscreen mode Exit fullscreen mode

Gráfico de halteres personalizado

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.

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs