Tem como objetivo verifica quais são os meses/semanas/dias que mais tem votações na câmara e qual a proporção de votações Bíblia, Boi e Bala(BBB)/não BBB

Bibliotecas necessárias

library(ggplot2)
library(dplyr)
require(scales)
library(tidyr)

source("~/Projetos/houseofcunha/R/camara-lib.R")

Carregando CSV com os votos dos deputados

votos <- ler_votos_de_ativos("~/Projetos/houseofcunha/votacoes.csv")
## [1] "Descartados por inatividade: "
## [1] nome    uf      partido
## <0 rows> (or 0-length row.names)
votacoes_bbb <- read.table("~/Projetos/houseofcunha/proposicoes-bbb.csv", header=TRUE, quote="\"")

proposicoes <- as.data.frame(unique(votos[,c("tipo", "num_pro")]))
votos$bbb  <- votos$num_pro %in%  votacoes_bbb$bbb

# distinguir diferentes votações de uma mesma proposição
votos$num_pro <- paste0(votos$num_pro, "-", votos$id_votacao)

Formatação das datas

votos$data <- as.Date(votos$data, format = "%d/%m/%Y")
votacoes <- unique(votos[,c("data", "num_pro", "bbb")])
votacoes$ano <- as.numeric(format(votacoes$data, format = '%Y'))
votacoes$mes <- as.numeric(format(votacoes$data, format = '%m'))
votacoes$dia <- as.numeric(format(votacoes$data, format = '%j'))
votacoes$semana <- as.numeric(format(votacoes$data, format = '%W'))

votacoes <- votacoes %>%
  filter(ano >= 2015)

Quantidade de votação mês a mês

plot <- quantidade_votacao_mes(votacoes)
plot$nome_mes <- month.abb[plot$mes]

p <- ggplot(data = plot, aes(x=reorder(nome_mes, mes), y = n_votacoes)) + 
  geom_bar(stat="identity") + 
  labs(y='Número de Votações', x='Mês', title = "Número de votações ao mês") + 
  theme_classic() + 
  theme(axis.ticks = element_blank())

p

png("~/Projetos/houseofcunha/plot/numero_votacao_mes_1.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Quantidade de votação mês a mês BBB/não BBB

plot <- quantidade_votacao_mes_bbb(votacoes)
plot$nome_mes <- month.abb[plot$mes]

plot$total_votacao_mes <- plot$bbb + plot$nao_bbb
mean_votacoes_mes <- mean(plot$total_votacao_mes)

plot <- plot %>%
  gather(tipo, n_votacoes, bbb:nao_bbb)

p <- ggplot(data=plot, aes(x=reorder(nome_mes, mes), y=n_votacoes, fill=tipo)) + 
  geom_bar(stat="identity") + 
  scale_fill_manual(values = c("nao_bbb" = "#99D8C9", "bbb" = "#2CA25F")) +
  labs(y='Número de Votações', x='Mês', title = "Número de votações BBB/não BBB ao mês") + 
  theme_classic() + 
  theme(axis.ticks = element_blank())

p

png("~/Projetos/houseofcunha/plot/numero_votacao_mes_2.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2
p <- p + geom_abline(intercept=mean_votacoes_mes,slope= 0,colour="blue")

p

png("~/Projetos/houseofcunha/plot/numero_votacao_mes_3.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Quantidade de votação dia a dia

plot <- quantidade_votacao_dia(votacoes)

rompimento_com_governo = 216 # Dia 04/08 
contas_suica = 273 # Dia 30/09

plot$destaque <- ifelse(plot$dia == rompimento_com_governo, "Rompimento com o Governo", ifelse(plot$dia == contas_suica, "Contas na Suiça", ""))

p <- ggplot(data = plot, aes(x=reorder(dia, dia), y = n_votacoes, group=1)) + 
  geom_line() +
  geom_point() + 
  labs(y='Número de Votações', x='Dia', title = "Número de votações ao dia") + 
  theme_classic() + 
  theme(axis.ticks = element_blank(),
        axis.text.x=element_blank()) +
  scale_y_continuous(breaks = round(seq(min(plot$n_votacoes), max(plot$n_votacoes), by = 1),))

p <- p + geom_point(data = filter(plot, destaque == "Rompimento com o Governo"), 
                    colour = "darkred", 
                    size = 8, 
                    alpha = 0.7)

p <- p + geom_point(data = filter(plot, destaque == "Contas na Suiça"), 
                    colour = "darkred", 
                    size = 8, 
                    alpha = 0.7)

p

png("~/Projetos/houseofcunha/plot/numero_votacao_dia_1.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Quantidade de votação dia a dia BBB/não BBB

plot <- quantidade_votacao_dia_bbb(votacoes)

plot$total_votacao_dia <- plot$bbb + plot$nao_bbb
mean_votacoes_dia <- mean(plot$total_votacao_dia)

rompimento_com_governo = 216 # Dia 04/08 
contas_suica = 273 # Dia 30/09

plot$destaque <- ifelse(plot$dia == rompimento_com_governo, "Rompimento com o Governo", ifelse(plot$dia == contas_suica, "Contas na Suiça", ""))
plot$total_votacao <- plot$bbb + plot$nao_bbb

plot <- plot %>%
  gather(tipo, n_votacoes, bbb:nao_bbb)

p <- ggplot(data = plot, aes(x=reorder(dia, dia), y = n_votacoes, fill=tipo)) + 
  geom_bar(stat="identity") +
  scale_fill_manual(values = c("nao_bbb" = "#99D8C9", "bbb" = "#2CA25F")) +
  labs(y='Número de Votações', x='Dia', title = "Número de votações ao dia") + 
  theme_classic() + 
  theme(axis.ticks = element_blank(),
        axis.text.x=element_blank()) +
  scale_y_continuous(breaks = round(seq(min(plot$n_votacoes), max(plot$n_votacoes), by = 1),))

p <- p + geom_bar(data = filter(plot, dia == rompimento_com_governo | dia == contas_suica), stat="identity", colour="red") + guides(fill=FALSE)

p

png("~/Projetos/houseofcunha/plot/numero_votacao_dia_2.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2
p <- p + geom_abline(intercept=mean_votacoes_dia,slope= 0,colour="blue")

p

png("~/Projetos/houseofcunha/plot/numero_votacao_dia_3.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Quantidade de votação semana a semana

plot <- quantidade_votacao_semana(votacoes)

p <- ggplot(data = plot, aes(x=reorder(semana, semana), y = n_votacoes)) + 
  geom_bar(stat="identity") + 
  labs(y='Número de Votações', x='Semana', title = "Número de votações na semana") + 
  theme_classic() + 
  theme(axis.ticks = element_blank()) +
  scale_y_continuous(breaks = round(seq(min(plot$n_votacoes), max(plot$n_votacoes), by = 1),))

p

png("~/Projetos/houseofcunha/plot/numero_votacao_semana_1.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Quantidade de votação semana a semana BBB/não BBB

plot <- quantidade_votacao_semana_bbb(votacoes)

plot <- plot %>%
  gather(tipo, n_votacoes, bbb:nao_bbb)

p <- ggplot(data=plot, aes(x=reorder(semana, semana), y=n_votacoes, fill=tipo)) + 
  geom_bar(stat="identity") +
  scale_fill_manual(values = c("nao_bbb" = "#99D8C9", "bbb" = "#2CA25F")) +
  labs(y='Número de Votações', x='Semana', title = "Número de votações BBB/não BBB na semana") + 
  theme_classic() + 
  theme(axis.ticks = element_blank()) 

p

png("~/Projetos/houseofcunha/plot/numero_votacao_semana_2.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Tipo de votações

proposicoes$tipo <- as.character(proposicoes$tipo)
plot <- as.data.frame(table(proposicoes$tipo))

p <- ggplot(data = plot, aes(x=reorder(Var1, -Freq), y = Freq)) + 
  geom_bar(stat="identity") + 
  labs(y='Número de Proposições', x='Tipo', title = 'Número de Proposições Votadas') + 
  theme_classic() + 
  theme(axis.ticks = element_blank())

p

png("~/Projetos/houseofcunha/plot/numero_de_proposicoes_1.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2

Tipo de votações BBB e não BBB

proposicoes$num_pro <- as.character(proposicoes$num_pro)
proposicoes$bbb  <- proposicoes$num_pro %in% votacoes_bbb$bbb

plot <- as.data.frame(table(proposicoes$bbb))

plot$Tipo <- ifelse(plot$Var1 == FALSE, "Não BBB", ifelse(plot$Var1 == TRUE, "BBB", ""))

p <- ggplot(data = plot, aes(x=reorder(Tipo, -Freq), y = Freq, fill = Tipo)) + 
  geom_bar(stat="identity") + 
  scale_fill_manual(values = c("Não BBB" = "#99D8C9", "BBB" = "#2CA25F")) +
  labs(y='Número de Proposições', x='', title = 'Número de Proposições BBB') + 
  theme_classic() + 
  theme(axis.ticks = element_blank())

p

png("~/Projetos/houseofcunha/plot/numero_de_proposicoes_2.png", 
    width = 800, height = 600)
p
dev.off()
## png 
##   2