análise rápida dos dados de evolução diária do N. de bagagens pagas e gratuidas X Km
#' data downloaded from ANAC using flightsbr, https://github.com/ipeaGIT/flightsbr
#' data dictionary at https://www.gov.br/anac/pt-br/assuntos/regulados/empresas-aereas/envio-de-informacoes/descricao-de-variaveis
library(flightsbr)
library(data.table)
library(ggplot2)
library(patchwork)
options(scipen = 999)
# download data
df2016 <- read_flights(date=2016)
df2017 <- read_flights(date=2017)
df2018 <- read_flights(date=2018)
df <- rbindlist(list(df2015, df2016, df2017, df2018))
# keep national flights ---------------------------------------------
df <- df[nm_pais_origem == 'BRASIL' & nm_pais_destino == 'BRASIL', ]
# convert columns to numeric
cols <- c('nr_bagagem_paga_km', 'nr_bagagem_gratis_km', 'kg_carga_paga', 'kg_carga_gratis', 'kg_bagagem_excesso', 'kg_peso')
df[, c(cols) := lapply(.SD, function(x){as.numeric(x)}), .SDcols = cols]
# count daily load ---------------------------------------------
df2 <- df[, .(nr_bagagem_paga_km = sum(nr_bagagem_paga_km, na.rm=TRUE),
nr_bagagem_gratis_km = sum(nr_bagagem_gratis_km, na.rm=TRUE),
kg_carga_paga = sum(kg_carga_paga, na.rm=TRUE),
kg_carga_gratis = sum(kg_carga_gratis, na.rm=TRUE),
kg_bagagem_excesso = sum(kg_bagagem_excesso, na.rm=TRUE),
peso_total = sum(kg_peso, na.rm=TRUE)) , by = .(nr_ano_partida_real, dt_partida_real)]
# reformat date ---------------------------------------------
df2[, date := as.IDate(dt_partida_real)]
df2 <- df2[ between(date, as.IDate('2015-01-01'), as.IDate('2018-12-31')) ]
df2[, date := paste0("2030-", format(date, "%m-%d"))]
df2[, date := as.IDate(date, format="%Y-%m-%d") ]
df2 <- na.omit(df2)
# plot ---------------------------------------------
fig_paga <- ggplot() +
geom_point( data= df2, aes(x=date, y=nr_bagagem_paga_km , color=nr_ano_partida_real ), alpha=.4, size=1) +
geom_smooth( data= df2, aes(x=date, y=nr_bagagem_paga_km , color=nr_ano_partida_real, fill=nr_ano_partida_real ), alpha=.4, size=1) +
scale_y_log10(name="Quantidade de bagagem paga X Km",
labels = unit_format(unit = "")) +
scale_x_date(date_breaks = "1 months", date_labels = "%b") +
labs(subtitle ='Bagagem paga', color = "Legend") +
scale_color_identity(labels = c(2015:2018), name = "", guide = "legend") +
scale_fill_identity(labels = c(2015:2018), name = "", guide = "legend") +
geom_vline(xintercept = as.Date('2030-03-14'), color='gray', alpha=.5) +
theme_classic() +
theme(panel.grid.minor = element_blank(),
axis.text = element_text(size = 7),
axis.title=element_text(size=9),
plot.background = element_rect(fill='white', colour='white'))
fig_gratis <- ggplot() +
geom_point( data= df2, aes(x=date, y=nr_bagagem_gratis_km , color=nr_ano_partida_real ), alpha=.4, size=1) +
geom_smooth( data= df2, aes(x=date, y=nr_bagagem_gratis_km , color=nr_ano_partida_real, fill=nr_ano_partida_real ), alpha=.4, size=1) +
scale_y_log10(name="Quantidade de bagagem gratis X Km",
labels = unit_format(unit = "")) +
scale_x_date(date_breaks = "1 months", date_labels = "%b") +
labs(subtitle ='Bagagem gratuita', color = "Legend") +
scale_color_identity(labels = c(2015:2018), name = "", guide = "legend") +
scale_fill_identity(labels = c(2015:2018), name = "", guide = "legend") +
geom_vline(xintercept = as.Date('2030-03-14'), color='gray', alpha=.5) +
theme_classic() +
theme(panel.grid.minor = element_blank(),
axis.text = element_text(size = 7),
axis.title=element_text(size=9),
plot.background = element_rect(fill='white', colour='white'))
temp <- fig_paga / fig_gratis + plot_layout(guides = 'collect')
ggsave(temp, filename = 'temp.png', dpi=300,
width = 16, height = 12, units = 'cm')