Na seção de política monetária da nova versão do curso de Análise de Conjuntura usando o R, ensino aos alunos a baixar dados do boletim focus do Banco Central através do pacote rbcb. Os dados estão disponíveis por meio da API do Banco Central e também podem ser baixadas via arquivos do tipo json. Com o pacote rbcb, por exemplo, é possível baixar os dados do crescimento esperado para esse ano com o código abaixo.
library(rbcb) pibe = get_annual_market_expectations('PIB Total', start_date = '2019-01-04') pib_esperado = pibe$median[pibe$reference_year=='2019'] pib_esp_min = pibe$min[pibe$reference_year=='2019'] pib_esp_max = pibe$max[pibe$reference_year=='2019'] dates = pibe$date[pibe$reference_year=='2019'] data = data.frame(dates=dates, pib=pib_esperado, min=pib_esp_min, max=pib_esp_max)
E então gerar um gráfico como abaixo...
library(ggplot2) library(scales) library(ggrepel) library(png) library(grid) library(gridExtra) img <- readPNG('logo.png') g <- rasterGrob(img, interpolate=TRUE) ggplot(data=data, aes(x=dates, y=pib))+ geom_line(size=.8, colour='darkblue')+ geom_ribbon(aes(ymax=max, ymin=min), fill="blue", alpha=.1)+ labs(title='Crescimento Esperado para 2019', subtitle='Boletim Focus: mediana das instituições', caption='Fonte: analisemacro.com.br com dados do BCB.')+ xlab('')+ylab('% a.a.')+ scale_x_date(breaks = date_breaks("7 days"), labels = date_format("%d/%b"))+ theme(axis.text.x=element_text(angle=45, hjust=1))+ geom_label_repel(label=round(data$pib,2), color = c(rep('black',1), rep(NA,nrow(data)-1)), fill = c(rep('#91b8bd',1), rep(NA,nrow(data)-1)))+ theme(panel.background = element_rect(fill='#acc8d4', colour='#acc8d4'), plot.background = element_rect(fill='#8abbd0'), axis.line = element_line(colour='black', linetype = 'dashed'), axis.line.x.bottom = element_line(colour='black'), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), legend.position = 'bottom', legend.background = element_rect((fill='#acc8d4')), legend.key = element_rect(fill='#acc8d4', colour='#acc8d4'), plot.margin=margin(5,5,15,5))+ annotation_custom(g, xmin=as.Date('2019-01-03'), xmax=as.Date('2019-01-31'), ymin=.4, ymax=1.5)
Observe que desenhei os mínimos e máximos esperados via o geom_ribbon do pacote ggplot2. Na versão 3.0 do curso, a propósito, utilizaremos muito o ggplot2 para produção de gráficos. Nesse exemplo, o crescimento esperado na ponta é de 1,45%, ficando no intervalo de 0,73% a 2,64%. É, diga-se, a 11ª semana de cortes nessa expectativa de crescimento...
Para quem tiver interesse, estamos com inscrições abertas para a última turma do ano do curso de Análise de Conjuntura usando o R. Aproveite e garante a sua vaga!