Created
January 17, 2024 20:35
-
-
Save beatrizmilz/5cf6c2e6234e460428d45ea4b9d1d2dc to your computer and use it in GitHub Desktop.
Código para criar um gráfico com R e ggplot2 do número de eventos da R-Ladies São Paulo ao longo do tempo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Gráfico: Eventos da R-Ladies São Paulo | |
# Criado por Beatriz Milz | |
# Instagram: @dadoseambiente | |
# GitHub: @beatrizmilz | |
library(tidyverse) | |
# Criando manualmente uma tabela com os dados | |
# Na tabela temos a frequencia de eventos online e presenciais, em cada ano. | |
frequencia_eventos <- tribble( | |
~ ano, ~ n_eventos_online, ~ n_eventos_presencial, | |
2018L, 0L, 4L, | |
2019L, 0L, 11L, | |
2020L, 5L, 1L, | |
2021L, 3L, 0L, | |
2022L, 1L, 1L, | |
2023L, 2L, 5L | |
) | |
# Precisamos deixar a tabela em um formato "longo"! | |
# Ou seja, ficar só com as colunas "ano", "tipo" e "n" | |
# sendo que "tipo" é o tipo de evento (online ou presencial) | |
# e "n" é a frequencia de eventos daquele tipo naquele ano. | |
frequencia_eventos_long <- frequencia_eventos |> | |
pivot_longer(cols = -ano, | |
names_to = "tipo", | |
values_to = "n") |> | |
# Melhorando o texto da coluna "tipo" | |
mutate(tipo = str_replace(tipo, "n_eventos_", "") |> | |
str_to_title()) | |
# Tabela pequena com os eventos planejados para 2024 | |
eventos_planejados <- tribble( ~ ano, ~ tipo, ~ n, | |
2024L, "Online", 6L, | |
2024L, "Presencial", 6L) | |
# Agora podemos fazer o gráfico! | |
grafico_rladies <- frequencia_eventos_long |> | |
# iniciando o ggplot2 | |
ggplot() + | |
# mapeando as variáveis | |
aes(x = ano, y = n, fill = tipo) + | |
# adicionando as camadas | |
# geom_col por padrão usará os dados da tabela frequencia_eventos_long | |
geom_col() + | |
# geom_col com os dados da tabela eventos_planejados | |
# o alpha = 0.5 é para deixar transparência de 50% | |
geom_col(data = eventos_planejados, alpha = 0.5) + | |
# Alterando as cores das barras | |
scale_fill_manual(values = c("#a7a9ac", "#88398a")) + | |
# Configurando a escala do eixo x: queremos que "quebre" ano a ano | |
scale_x_continuous(breaks = seq(2017, 2024, 1)) + | |
# Configurando a escala do eixo y: queremos que "quebre" de 2 em 2 | |
# para não poluir o gráfico | |
scale_y_continuous(breaks = seq(0, 12, 2)) + | |
# Adicionando rótulos e títulos | |
labs( | |
x = "Ano", | |
y = "Quantidade", | |
fill = "Modalidade", | |
title = "Eventos da R-Ladies São Paulo", | |
subtitle = "Estamos planejando 12 eventos em 2024!", | |
caption = "Gráfico por Beatriz Milz\n Instagram: @dadoseambiente" | |
) + | |
# Configurando o tema do gráfico: | |
# iniciando com o tema minimal e alterando o tamanho da fonte padrão | |
theme_minimal(base_size = 15) + | |
# configurando o tema do gráfico | |
theme( | |
# deixando a legenda em cima do grafico | |
legend.position = "top", | |
# tirando as linhas de grade | |
panel.grid.minor = element_blank(), | |
panel.grid.major = element_blank(), | |
# Essa configuração ajuda a centralizar o título | |
plot.title.position = "plot", | |
# Configurando o título do gráfico | |
plot.title = element_text( | |
family = "Arial", | |
color = "#88398a", | |
hjust = 0.5 | |
), | |
# Configurando o subtítulo do gráfico | |
plot.subtitle = element_text(hjust = 0.5, size = 12), | |
# Configurando os textos do gráfico | |
text = element_text(family = "Arial", color = "#80868b") | |
) | |
# Salvando o gráfico | |
ggsave( | |
"grafico_rladies.png", | |
plot = grafico_rladies, | |
dpi = 300, | |
height = 5, | |
width = 7, | |
bg = "white" | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment