Visualizações e tema para página de dados

Code
library(tidyverse)
# estilo
source(here::here("src/achados-e-pedidos-dados/00-plot-aesthetics.R"))

GRÁFICOS

Scorecard: pedidos na base

call query:

select p.Ativo, 
        count(p.Codigo) as QuantidadePedido,
        sp.Nome as StatusPedido
from pedidos as p
left join status_pedido as sp
on (p.CodigoStatusPedido = sp.Codigo)
group by sp.Nome
having Ativo = 1
;

simulação do plot:

Code
scorecard <- readRDS(here::here("src/achados-e-pedidos-dados/data/scorecard.rds"))

my_label <- "{format(StatusPedido, justify = 'centre', trim = T)}\n{scales::number(QuantidadePedido)}\n{scales::percent(PercentualPedido)}"

scorecard %>%
  mutate(PercentualPedido = QuantidadePedido / sum(QuantidadePedido)) %>%
  ggplot(aes(y = "", x = StatusPedido, fill = StatusPedido)) +
  geom_label(aes(label = str_glue(my_label)), show.legend = F) +
  theme_minimal() +
  scale_fill_manual(values = cores_status_pedido) +
  labs(x = NULL, y = NULL) +
  theme(
    panel.grid = element_blank(),
    axis.text = element_blank()
  )

Gráfico de linhas: Classificação de atendimento por ano

Call query:

select p.Ativo,
       count(p.Codigo) as QuantidadePedido,
       year(p.DataEnvio) as AnoEnvio,
       sp.Nome as NomeStatusPedido
from pedidos as p
left join status_pedido as sp on (p.CodigoStatusPedido = sp.Codigo)
group by sp.Nome, year(p.DataEnvio)
having Ativo = 1
;

simulação do plot:

Code
linhas <- readRDS(here::here("src/achados-e-pedidos-dados/data/linhas.rds"))

linhas %>% 
  add_count(AnoEnvio, wt = QuantidadePedido, name = "QuantidadePedidoAno") %>% 
  mutate(perc = QuantidadePedido / QuantidadePedidoAno) %>% 
  ggplot(aes(x = AnoEnvio, y = perc, color = NomeStatusPedido)) +
  geom_line(size = 2) +
  theme_minimal() +
  hrbrthemes::scale_y_percent() +
  scale_x_continuous(breaks = 2012L:2022L) +
  scale_color_manual(values = cores_status_pedido) +
  labs(
    title = "Taxa de atendimento por ano",
    y = NULL, x = NULL, color = NULL
  ) +
  theme(panel.grid.minor = element_blank())

Mapa: Atendimento da LAI - órgãos estaduais e municipais

Call query:

select p.Ativo,
       count(p.Codigo) as QuantidadePedido,
       sp.Nome as NomeStatusPedido,
       pd.Nome as NomeEsferaPoder,
       nf.Nome as NomeNivelFederativo,
       uf.Sigla as SiglaUF
from pedidos p
left join status_pedido as sp on (p.CodigoStatusPedido = sp.Codigo)
left join agentes as a on (p.CodigoAgente = a.Codigo)
left join tipo_poder as pd on (a.CodigoPoder = pd.Codigo)
left join tipo_nivel_federativo as nf on (a.CodigoNivelFederativo = nf.Codigo)
left join uf as uf on (a.CodigoUF = uf.Codigo)
group by sp.Nome, pd.Nome, nf.Nome, uf.Sigla
having Ativo = 1
;

Simulação do plot

Clique aqui para visualização itnerativa do gráfico