Realizando Raspagem dos Dados via Ibamam Package
distribuidas <- Ibamam::get_dataset_ibamam("distribuidas", uf = c("BA", "MG", "SP", "RJ", "PE", "AM"))
Respondendo as perguntas chaves
Qual estado tem o maior número de multas distribuidas?
k <- distribuidas %>%
mutate(Ano = lubridate::year(dataAuto)) %>%
group_by(uf, Ano) %>%
mutate(Quantidade = n()/1000) %>% # por mil
filter(Ano > 1995 & Ano < 2022) # filtrei apenas pra ajuste do eixo
q <- ggplot(k, aes(x = fct_reorder(uf, Quantidade),
y = Quantidade,
fill = tipoInfracao), is.na(TRUE)) +
geom_col()
graf <- q + theme(legend.title = element_blank()) +
scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
labs(
title = "Número de autos de infração aplicados, por UF e tipo de Infração - 1996-2021",
subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA") +
coord_flip()
plot(graf)

Qual estado tem o maior número de multas distribuidas por tipo de auto?
distribuidas %>%
mutate(Ano = lubridate::year(dataAuto)) %>%
group_by(Ano, uf) %>%
mutate(Quantidade = n()/1000) %>%
filter(Ano > 1995 & Ano < 2022) %>%
ggplot(aes(x = fct_reorder(uf, Quantidade, .desc = T), y = Quantidade, fill = tipoInfracao), is.na(TRUE)) +
geom_col() +
ylab("Quantidade Autos - em milhares") +
xlab("Anos") +
labs(title = "Número de autos de infração aplicados, por UF e tipo de Infração - 1996-2021",
subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA") +
scale_fill_brewer(palette="Paired") +
scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
theme_classic() +
theme(legend.position = c(.8,.6),
legend.justification = "center")

Qual Estado tem o maior montante de multas distribuidas (em milhões de reais ($)?
gp <- distribuidas %>%
mutate(Estados = fct_reorder(uf,
valorAuto,
.fun = sum)) %>%
group_by(Estados) %>%
summarise(valor = sum(valorAuto)/1000000) %>%
ggplot2::ggplot() + (aes(x = Estados, y = valor)) +
geom_bar(stat = "identity") +
theme_classic() +
scale_y_continuous() +
labs(
Title = "Valor total das Multas aplicadas por Estado desde o início da série - em milhões de reais",
x = "Estados",
y = "Valor total das multas distribuidas")
plot(gp)

Multas distribuidas por ano
plot(d)

Número de multas distribuidas por tipos de auto por ano
distribuidas %>%
mutate(Ano = lubridate::year(dataAuto)) %>%
group_by(Ano) %>%
mutate(Quantidade = n()/1000) %>% # por mil
filter(Ano > 1995 & Ano < 2022) %>% # filtrei mas apenas pra ajuste do eixo
ggplot(aes(x = Ano, y = Quantidade, fill = tipoInfracao, is.na(TRUE))) +
geom_col(alpha = 0.9) +
theme(plot.margin = unit(c(1,1,1,1),"cm")) +
# legend.key.height = unit(2, 'cm'),
# legend.key.width = unit(2, 'cm')
# ) +
ylab("Quantidade Autos - em milhares") +
xlab("Anos") +
labs(
title = "Número de autos de infração aplicados, por Ano e tipo de Infração - 1996-2021",
subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA",
fill= ""
) +
scale_fill_brewer(palette = "Paired") +
scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
theme_classic()
Qual o tipo de infração mais comum nas multas distribuidas?
distribuidas %>%
group_by(tipoInfracao) %>%
summarise(Quantidade = n()/1000) %>%
mutate(tipoInfracao = fct_reorder(tipoInfracao,
Quantidade,
.fun = sum)) %>%
ggplot(aes(x = tipoInfracao, y = Quantidade)) +
geom_col(fill='#304D63', alpha = 0.4) +
theme_classic() +
scale_y_continuous() +
coord_flip() +
labs(
Title = "Quantidade de infração por tipo de Infração",
x = "",
y = "Número de total de multas - milhares")

Qual a distribuição de multas por tipo de enquadramento juridico?
distribuidas %>%
dplyr::group_by(enquadramentoJuridico) %>%
# na.omit() %>%
dplyr::summarise(Quantidade = n()) %>%
dplyr::arrange(desc(Quantidade)) %>%
head()
## # A tibble: 3 x 2
## enquadramentoJuridico Quantidade
## <fct> <int>
## 1 CPF 148625
## 2 CNPJ 41951
## 3 <NA> 23090
Quais são as 30 empresas mais multadas pelo Ibama?
distribuidas %>%
group_by(nomeRazaoSocial) %>%
filter(tipoAuto == "Multa") %>%
summarise(Quantidade = n()) %>%
arrange(desc(Quantidade)) %>%
head(30)
## # A tibble: 30 x 2
## nomeRazaoSocial Quantidade
## <chr> <int>
## 1 PETROLEO BRASILEIRO S/A - PETROBRAS 818
## 2 PETROBRAS S.A. / E&P UN-RIO 113
## 3 PETROBRAS - PETROLEO BRASILEIRO S.A. 96
## 4 JOSÉ LOPES 93
## 5 JOSE ANTONIO DA SILVA 87
## 6 RUMO MALHA PAULISTA S.A. 85
## 7 JOAO BATISTA DA SILVA 74
## 8 JOSE CARLOS DA SILVA 74
## 9 AVG SIDERURGIA LTDA. 69
## 10 NATURA INOVAÇÃO E TECNOLOGIA DE PRODUTOS LTDA 68
## # ... with 20 more rows
Qual a situação/status de débito das multas distribuidas (somente as 15 categorias mais frequentes)?
dt <- distribuidas %>%
group_by(situacaoDebito) %>%
na.omit() %>%
summarise(Quantidade = n()) %>%
arrange(desc(Quantidade)) %>%
head(25)
plot(graf)

Quantidades de multas aplicadas por Ano
d <- distribuidas %>%
mutate(Ano = lubridate::year(dataAuto)) %>%
group_by(Ano) %>%
summarise(Quantidade = n()) %>%
mutate(Ano = as.character(Ano))
plot(d)

Distribuição das multas por Estado
plot(p)

Autos de infraçao por enquadramento juridico e estados
plot(n1)

n2 <- distribuidas %>%
select(uf, enquadramentoJuridico, dataAuto, tipoInfracao) %>%
mutate(Ano = lubridate::year(dataAuto)) %>%
filter(Ano > 1996 & Ano < 2022) %>%
group_by(uf, enquadramentoJuridico, tipoInfracao) %>%
na.omit(enquadramentoJuridico) %>%
dplyr::summarise(Quantidade = n())
## `summarise()` has grouped output by 'uf', 'enquadramentoJuridico'. You can override using the `.groups` argument.
Autos de Infração por tipo de Infração, Brasil - 1996-2021
dtg <- distribuidas %>%
mutate(Ano = lubridate::year(dataAuto)) %>%
group_by(uf, Ano) %>%
mutate(Quantidade = n()) %>%
mutate(Quantidade = log10(Quantidade)) %>%
filter(Ano > 1995 & Ano < 2022) %>% # filtrei mas apenas pra ajuste do eixo
ggplot(aes(x = fct_reorder(uf, Quantidade), y = Quantidade, fill = tipoInfracao)) +
geom_col() +
theme(legend.key.size = unit(0.5, 'cm')) +
ylab("Quantidade Autos - em milhares") +
xlab("Estados") +
labs(title = "Número de autos de infração aplicados, por UF e tipo de Infração - 1996-2021",
subtitle = "Fonte: Ibamam Package usando dados via Dados Abertos/IBAMA") +
scale_fill_brewer(palette="Paired") +
scale_y_continuous(labels = function(x) format(x, scientific = FALSE)) +
theme_classic() +
coord_flip() +
theme(legend.position = c(.8,.5),
legend.justification = "center")
plot(dtg)
