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