Introdução Link para o cabeçalho

O Matinal News, meu jornal favorito, publicou um perfil sobre os vereadores de Porto Alegre. Achei uma ideia fantástica e resolvi chamar a Professora Mahayana Godoy para fazermos algo similar para Natal, organizando tudo em um infográfico. O resultado está abaixo:

Infográfico Completo

Os dados foram obtidos diretamente dos sites da Câmara de Vereadores de Natal e do Site do TSE. Clique aqui para baixar a planilha com os dados coletados.

As figuras foram criadas utilizando o R e abaixo eu mostro como elas foram feitas.

Criação de um Infográfico no R Link para o cabeçalho

Nossa principal fonte de consulta foi o post Create Infographics with R R. Nesse post vimos como criar todos os gráficos que fogem do padrão ggplot2 de ser. Por exemplo, o gráfico comparando gêneros foi criado com o código abaixo:

##### dados

vereadores <- read_excel(path = "dados/vereadores.xlsx")
vereadores <- clean_names(vereadores)

vereadores <- vereadores %>%
  mutate(idade = interval(dmy(data_de_nascimento), today())/years(1))

vereadores %>%
  select(genero, 
         estado_civil, 
         grau_de_instrucao, 
         idade, 
         cor_raca, 
         cidade, 
         uf, 
         recursos_recebidos, 
         patrimonio) %>%
  summarise(genero = mlv(genero), 
            estado_civil = mlv(estado_civil), 
            grau_de_instrucao = mlv(grau_de_instrucao), 
            idade = mean(idade), 
            cor_raca = mlv(cor_raca), 
            cidade = mlv(cidade), 
            uf = mlv(uf), 
            recursos_recebidos = mean(recursos_recebidos), 
            patrimonio = mean(patrimonio)) %>%
  t()


# genero

genero <- vereadores %>%
  group_by(genero) %>%
  count() %>%
  arrange(desc(n))

waffle(
  c('Feminino' = 5, 'Masculino' = 24), rows = 5,
  colors = c("#F9D84A", "#00C8C8"),
  use_glyph = "user",
  glyph_size = 20,
  reverse = FALSE,
  flip = FALSE,
  title = '', legend_pos="bottom"
)

O código abaixo foi usado para criar a visualização da raça/cor dos vereadores da cidade:

# raca/cor

raca <- vereadores %>%
  group_by(cor_raca) %>%
  count() %>%
  arrange(desc(n))

waffle(
  c("Branca" = raca$n[1], "Parda"  = raca$n[2], "Preta" = raca$n[3]), rows = 5,
  use_glyph = "user",
  title = 'Câmara de Vereadores por raça', legend_pos="bottom"
)

ggplot(raca)+
  geom_parliament(aes(seats = n, fill = cor_raca))+
  coord_fixed() + 
  theme_void() +
  theme(legend.position = "bottom") +
  labs(fill = NULL) +
  scale_fill_brewer(palette = "Dark2", labels = c("Branco", "Pardo", "Preto"))

Por fim, para o gráfico com os partidos, usamos o seguinte código:

# partido

vereadores %>%
  group_by(partido_atual) %>%
  count() %>%
  arrange(desc(n))

partido <- vereadores %>%
  group_by(partido_atual) %>%
  count() %>%
  arrange(desc(n)) %>% 
  filter(n >1) %>% 
  droplevels()

partido %>% 
  e_charts(partido_atual) %>% 
  e_pictorial(n, symbol = ea_icons("user"), 
              symbolRepeat = TRUE, z = -1,
              symbolSize = c(60, 60)) %>% 
  e_theme("westeros") %>%
  e_title(text = "Distribuição por partidos", subtext = "Partidos com pelo menos 2 parlamentares. Partidos com 1 parlamentar são \nAvante, MDB, PCdoB, PL, PP, PROS, PSB, PSD, PSL, PV e Republicanos", textStyle =list(fontSize= 24, fontFamily= 'Arial', fontWeight ='bold'), subtextStyle =list(fontSize= 12, fontFamily= 'Arial', fontWeight ='lighter')) %>%
  e_flip_coords() %>%
  # Hide Legend
  e_legend(show = FALSE) %>%
  # Remove Gridlines
  e_x_axis(splitLine=list(show = FALSE), show = FALSE) %>%
  e_y_axis(splitLine=list(show = FALSE), show = TRUE, inverse = TRUE, axisLine = list(show = FALSE)) %>%
  # Format Label
  e_labels(fontSize = 16, fontWeight ='bold', position = "right", offset=c(10, 0))

O código completo dessa análise, com os dados já pré-processados, está disponível em meu github.