Created
March 20, 2024 14:53
-
-
Save fernandobarbalho/be92c2fc3744a7a9dc9ee16bc001253b to your computer and use it in GitHub Desktop.
Dashboard de contas nacionais
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
title: "Contas Nacionais" | |
output: | |
flexdashboard::flex_dashboard: | |
theme: | |
bg: "#101010" | |
fg: "#ffda00" | |
primary: "#183eff" | |
base_font: | |
google: Prompt | |
code_font: | |
google: JetBrains Mono | |
orientation: columns | |
vertical_layout: fill | |
runtime: shiny | |
--- | |
```{r setup, include=FALSE} | |
library(flexdashboard) | |
library(sidrar) | |
library(tidyverse) | |
library(plotly) | |
library(lubridate) | |
library(shiny) | |
library(purrr) | |
# Install thematic and un-comment for themed static plots (i.e., ggplot2) | |
thematic::thematic_rmd(bg= "#101010", fg="#ffda00", accent = NA ) | |
gera_trimestres<- function(ano){ | |
ano<-ano | |
purrr::map_chr(1:4, function(trimestre){ | |
stringr::str_c(ano,"0", trimestre) | |
}) | |
} | |
gera_meses_trimestre<- function(trimestre_codigo){ | |
as.Date(paste0( | |
str_sub(trimestre_codigo,1,4), | |
"-", | |
(as.numeric(str_sub(trimestre_codigo,5,6)))*3, | |
"-01")) | |
} | |
#gera_meses_trimestre("201603") | |
calculate_next_month <- function(input_date) { | |
input_date <- as.Date(input_date) # Convert input to Date object | |
next_month <- input_date %m+% months(1) # Add 1 month to the input date | |
return(next_month) | |
} | |
# Função para otimizar a criação de tabelas e cálculo de valor_referencia | |
calcular_valor_referencia <- function(tabela_base, setor, ano_referencia, direcao) { | |
if (direcao=="anterior"){ | |
tabela_filtrada <- | |
tabela_base %>% | |
filter(setores_e_subsetores == setor, | |
ano <= ano_referencia) %>% | |
arrange(desc(ano)) | |
} else{ | |
tabela_filtrada <- | |
tabela_base %>% | |
filter(setores_e_subsetores == setor, | |
ano >= ano_referencia) %>% | |
arrange(ano) | |
} | |
if(nrow(tabela_filtrada) > 1) { | |
tabela_filtrada$valor_referencia <- NA | |
tabela_filtrada$valor_referencia[1] <- tabela_filtrada$valor[1] | |
ajuste <- if_else(direcao == "anterior", -1, 1) | |
for(i in 2:nrow(tabela_filtrada)){ | |
if (ajuste==-1){ | |
tabela_filtrada$valor_referencia[i] <- tabela_filtrada$valor_referencia[i-1] * (1 + ajuste * (tabela_filtrada$variacao[i-1]/100)) | |
} else{ | |
tabela_filtrada$valor_referencia[i] <- tabela_filtrada$valor_referencia[i-1] * (1 + ajuste * (tabela_filtrada$variacao[i]/100)) | |
} | |
} | |
} | |
return(tabela_filtrada) | |
} | |
calcula_serie_constante<- function(tabela_taxa, tabela_precos, trimestres_filtro, conta, ano_referencia){ | |
# Preparação dos dados | |
dados_grafico_acumulado_lab <- tabela_taxa %>% | |
filter(setores_e_subsetores %in% conta, variavel_codigo == "6563", trimestre_codigo %in% trimestres_filtro) %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), setores_e_subsetores = str_wrap(setores_e_subsetores, 20), ano = year(data_nominal)) %>% | |
select(ano, setores_e_subsetores, valor) %>% | |
rename(variacao = valor) | |
tabela_base <- tabela_precos %>% | |
filter(setores_e_subsetores %in% conta) %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), setores_e_subsetores = str_wrap(setores_e_subsetores, 20), ano = as.numeric(format(data_nominal, "%Y"))) %>% | |
summarise(valor = sum(valor), .by = c(setores_e_subsetores, ano)) %>% | |
ungroup() %>% | |
inner_join(dados_grafico_acumulado_lab, by = c("ano", "setores_e_subsetores")) | |
dados_grafico_constante_ano <- unique(tabela_base$setores_e_subsetores) %>% | |
map_dfr(function(setor) { | |
tabela_anterior <- calcular_valor_referencia(tabela_base, setor, ano_referencia, "anterior") | |
tabela_posterior <- calcular_valor_referencia(tabela_base, setor, ano_referencia, "posterior") | |
bind_rows(tabela_anterior, tabela_posterior[-1, ]) %>% | |
arrange(ano) %>% | |
mutate(valor_constante = valor_referencia/10^3)}) | |
} | |
get_setores_sem_pib<- function(){ | |
(cnt_vt_precos_correntes %>% | |
filter(setores_e_subsetores!="PIB a preços de mercado") %>% | |
distinct(setores_e_subsetores))$setores_e_subsetores | |
} | |
ano_atual <- as.numeric(format(Sys.Date(), "%Y")) | |
lista_trimestres<- unlist(lapply(1996:ano_atual, gera_trimestres)) | |
cnt_vt_precos_correntes<- | |
get_sidra(x = 1846, | |
period = lista_trimestres) | |
cnt_vt_precos_correntes <- janitor::clean_names(cnt_vt_precos_correntes) | |
cnt_taxa_variacao<- | |
get_sidra(x = 5932, | |
period = lista_trimestres | |
) | |
cnt_taxa_variacao<- janitor::clean_names(cnt_taxa_variacao) | |
datas_disponiveis<- sort(gera_meses_trimestre(unique(cnt_vt_precos_correntes$trimestre_codigo)), decreasing = TRUE) | |
data_estatistica<- gera_meses_trimestre(unique(cnt_vt_precos_correntes$trimestre_codigo)) | |
ultima_data<- data_estatistica[NROW(data_estatistica)] | |
ultimo_mes<- paste0(str_sub(ultima_data,6,7),"/",str_sub(ultima_data,1,4)) | |
ultimo_ano<- year(ultima_data) | |
``` | |
Dados anuais | |
===================================== | |
Inputs {.sidebar data-width=150} | |
------------------------------------- | |
```{r} | |
selectInput(inputId = "conta_ano", label= "Selecione uma ou mais contas", choices= unique(cnt_vt_precos_correntes$setores_e_subsetores),selected = "PIB a preços de mercado", multiple = TRUE, selectize = TRUE ) | |
selectInput(inputId = "ano", label= "Selecione um ou mais anos para destaque", choices= year(datas_disponiveis),selected = year(datas_disponiveis)[1], multiple = TRUE, selectize = TRUE ) | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_anual") | |
# Create the actual downloadButton | |
output$downloadUI_conta_anual <- renderUI( { | |
downloadButton("download_conta_anual","Download", style = "width:100%;") | |
}) | |
output$download_conta_anual<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_constante_anual', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_constante_ano, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
tags$br() | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_perc_ano") | |
# Create the actual downloadButton | |
output$downloadUI_conta_perc_ano <- renderUI( { | |
downloadButton("download_conta_perc_ano","Download", style = "width:100%;") | |
}) | |
output$download_conta_perc_ano<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_perc_ano', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_corrente_ano, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
tags$br() | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_perc_ano_constante") | |
# Create the actual downloadButton | |
output$downloadUI_conta_perc_ano_constante <- renderUI( { | |
downloadButton("download_conta_perc_ano_constante","Download", style = "width:100%;") | |
}) | |
output$download_conta_perc_ano_constante<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_perc_ano_constante', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_perc_constante_ano, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
``` | |
Column | |
----------------------------------------------------------------------- | |
### Evolução anual - Valores constantes | |
```{r} | |
renderPlotly({ | |
contas_sel<- input$conta_ano | |
ano_referencia<- 2010 | |
trimestres_filtro<- c(lista_trimestres[which(substr(lista_trimestres,5,6)=="04")], | |
lista_trimestres[length(lista_trimestres)]) | |
dados_grafico_constante_ano<<- | |
calcula_serie_constante(cnt_taxa_variacao, cnt_vt_precos_correntes, trimestres_filtro, contas_sel, ano_referencia ) | |
sel_data<- | |
dados_grafico_constante_ano %>% | |
filter(ano %in% input$ano) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_constante_ano, | |
x = ~ano, | |
y = ~valor_constante, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(format(ano), ": ", round(valor_constante,1)), | |
hoverinfo = 'text') %>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(ano, ": ", round(valor_constante,1)), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) %>% | |
layout(title = list(text = 'Evolução anual: valores constantes para 2010', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em R$ bi', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF'))) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
Column | |
----------------------------------------------------------------------- | |
### Evolução Anual - (%)Valor adicionado - valores Correntes | |
```{r} | |
renderPlotly ({ | |
dados_pib<- | |
cnt_vt_precos_correntes %>% | |
filter(setores_e_subsetores_codigo == "90705")%>% | |
select(trimestre_codigo, valor) %>% | |
rename(valor_pib = valor) | |
# Preparação dos dados | |
dados_grafico_corrente_ano <<- cnt_vt_precos_correntes %>% | |
filter(setores_e_subsetores %in% input$conta_ano) %>% | |
inner_join(dados_pib) %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), # Essa função precisa ser definida ou alterada conforme o contexto | |
setores_e_subsetores = str_wrap(setores_e_subsetores,20)) %>% | |
group_by(ano = format(data_nominal, "%Y"), | |
setores_e_subsetores) %>% | |
summarize(data_nominal = min(data_nominal), | |
valor = sum(valor), | |
valor_pib = sum(valor_pib)) %>% | |
ungroup() %>% | |
mutate(valor_perc = ((valor/valor_pib))*100) | |
# str_wrap pode precisar ser ajustado | |
sel_data <- dados_grafico_corrente_ano %>% | |
filter(year(data_nominal) %in% input$ano) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_corrente_ano, | |
x = ~data_nominal, | |
y = ~valor_perc, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(format(data_nominal,"%Y"), ": ", round(valor_perc,1),"%"), | |
hoverinfo = 'text') %>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(format(data_nominal,"%Y"), ": ", round(valor_perc,1),"%"), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) %>% | |
layout(title = list(text = 'Evolução anual: (%)Valor adicionado - valores Correntes', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em %', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF'))) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
### Evolução Anual - (%)Valor adicionado - constantes | |
```{r} | |
renderPlotly ({ | |
contas_sel<- input$conta_ano | |
ano_referencia<- 2010 | |
trimestres_filtro<- c(lista_trimestres[which(substr(lista_trimestres,5,6)=="04")], | |
lista_trimestres[length(lista_trimestres)]) | |
dados_pib<-calcula_serie_constante(cnt_taxa_variacao, cnt_vt_precos_correntes, trimestres_filtro, "Valor adicionado a preços básicos", ano_referencia ) | |
dados_pib <- | |
dados_pib %>% | |
select(ano, valor_constante) %>% | |
rename(valor_pib = valor_constante) | |
dados_series<- | |
calcula_serie_constante(cnt_taxa_variacao, cnt_vt_precos_correntes, trimestres_filtro, contas_sel, ano_referencia ) | |
# Preparação dos dados | |
dados_grafico_perc_constante_ano <<- | |
dados_series %>% | |
inner_join(dados_pib) %>% | |
mutate(valor_perc = ((valor_constante/valor_pib))*100) | |
# str_wrap pode precisar ser ajustado | |
sel_data <- dados_grafico_perc_constante_ano %>% | |
filter(ano %in% input$ano) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_perc_constante_ano, | |
x = ~ano, | |
y = ~valor_perc, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(ano, ": ", round(valor_perc,1),"%"), | |
hoverinfo = 'text') %>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(ano, ": ", round(valor_perc,1),"%"), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) %>% | |
layout(title = list(text = 'Evolução anual: (%)valor adicionado - valores constantes para 2010', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em %', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF'))) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
Variações | |
===================================== | |
Inputs {.sidebar data-width=150} | |
------------------------------------- | |
```{r} | |
selectInput(inputId = "conta_var", label= "Selecione uma ou mais contas", choices= unique(cnt_vt_precos_correntes$setores_e_subsetores),selected = "PIB a preços de mercado", multiple = TRUE, selectize = TRUE ) | |
selectInput(inputId = "trimestre_var", label= "Selecione um ou mais trimestre para destaque", choices= datas_disponiveis,selected = datas_disponiveis[1], multiple = TRUE, selectize = TRUE ) | |
selectInput(inputId = "ano_var", label= "Selecione um ou mais anos para destaque", choices= year(datas_disponiveis),selected = year(datas_disponiveis)[1], multiple = TRUE, selectize = TRUE ) | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_var_trim_anual") | |
# Create the actual downloadButton | |
output$downloadUI_conta_var_trim_anual <- renderUI( { | |
downloadButton("download_conta_var_trim_anual","Download", style = "width:100%;") | |
}) | |
output$download_conta_var_trim_anual<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_var_trim_anual', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_taxa_trim_ano_anterior, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
tags$br() | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_var_trim_trim") | |
# Create the actual downloadButton | |
output$downloadUI_conta_var_trim_trim <- renderUI( { | |
downloadButton("download_conta_var_trim_trim","Download", style = "width:100%;") | |
}) | |
output$download_conta_var_trim_trim<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_var_trim_trim', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_taxa_trim_anterior, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
tags$br() | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_var_ano") | |
# Create the actual downloadButton | |
output$downloadUI_conta_var_ano <- renderUI( { | |
downloadButton("download_conta_var_ano","Download", style = "width:100%;") | |
}) | |
output$download_conta_var_ano<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_conta_var_ano', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_acumulado_ano, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
tags$br() | |
# Create placeholder for the downloadButton | |
uiOutput("downloadUI_conta_var_acumulado") | |
# Create the actual downloadButton | |
output$downloadUI_conta_var_acumulado <- renderUI( { | |
downloadButton("download_conta_var_acumulado","Download", style = "width:100%;") | |
}) | |
output$download_conta_var_acumulado<- downloadHandler( | |
filename = function() { | |
paste('dados_grafico_conta_var_acumulado', '.csv', sep='') | |
}, | |
content = function(file) { | |
#dados_conta_trimestre_corrente <- graph_mapa_regic$data | |
write.table(dados_grafico_taxa_acum_ano, file, sep = ";",row.names = FALSE,fileEncoding = "UTF-8",dec=",") | |
} | |
) | |
``` | |
Variações | |
----------------------------------------------------------------------- | |
### Variação trimestral (em relação ao mesmo período do ano anterior) | |
```{r} | |
renderPlotly({ | |
dados_grafico_taxa_trim_ano_anterior<<- | |
cnt_taxa_variacao %>% | |
filter(setores_e_subsetores %in% input$conta_var, | |
variavel_codigo == "6561") %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), | |
setores_e_subsetores = str_wrap(setores_e_subsetores,20)) | |
sel_data<- | |
dados_grafico_taxa_trim_ano_anterior %>% | |
filter(data_nominal %in% input$trimestre_var) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_taxa_trim_ano_anterior, | |
x = ~data_nominal, | |
y = ~valor, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(format(data_nominal,"%m/%y"), ": ", round(valor,1),"%"), | |
hoverinfo = 'text') %>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(format(data_nominal,"%m/%y"), ": ", round(valor,1),"%"), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) %>% | |
layout(title = list(text = 'Taxa trimestral ano contra ano', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em (%)', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF'))) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
### Variação trimestral (trimestre contra trimestre) | |
```{r} | |
renderPlotly({ | |
dados_grafico_taxa_trim_anterior<<- | |
cnt_taxa_variacao %>% | |
filter(setores_e_subsetores %in% input$conta_var, | |
variavel_codigo == "6564") %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), | |
setores_e_subsetores = str_wrap(setores_e_subsetores,20)) | |
sel_data<- | |
dados_grafico_taxa_trim_anterior %>% | |
filter(data_nominal %in% input$trimestre_var) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_taxa_trim_anterior, | |
x = ~data_nominal, | |
y = ~valor, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(format(data_nominal,"%m/%y"), ": ", round(valor,1),"%"), | |
hoverinfo = 'text') %>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(format(data_nominal,"%m/%y"), ": ", round(valor,1),"%"), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) %>% | |
layout(title = list(text = 'Taxa trimestre contra trimestre', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em (%)', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF'))) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
Column | |
----------------------------------------------------------------------- | |
### Taxa acumulada ao longo do ano | |
```{r} | |
renderPlotly({ | |
trimestres_filtro<- c(lista_trimestres[which(substr(lista_trimestres,5,6)=="04")], | |
lista_trimestres[length(lista_trimestres)]) | |
dados_grafico_acumulado_ano<<- | |
cnt_taxa_variacao %>% | |
filter(setores_e_subsetores %in% input$conta_var, | |
variavel_codigo == "6563", | |
trimestre_codigo %in% trimestres_filtro | |
) %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), | |
setores_e_subsetores = str_wrap(setores_e_subsetores,20), | |
ano = year(data_nominal)) | |
sel_data<- | |
dados_grafico_acumulado_ano %>% | |
filter(ano %in% input$ano_var) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_acumulado_ano, | |
x = ~ano, | |
y = ~valor, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(ano, ": ", round(valor,1),"%"), | |
hoverinfo = 'text') %>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(ano, ": ", round(valor,1),"%"), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) %>% | |
layout(title = list(text = 'Taxa acumulada ao longo do ano', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em (%)', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF'))) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
### Variação acumulada em quatro trimestres | |
```{r} | |
renderPlotly({ | |
dados_grafico_taxa_acum_ano<<- | |
cnt_taxa_variacao %>% | |
filter(setores_e_subsetores %in% input$conta_var, | |
variavel_codigo == "6562") %>% | |
mutate(data_nominal = gera_meses_trimestre(trimestre_codigo), | |
setores_e_subsetores = str_wrap(setores_e_subsetores,20)) | |
sel_data<- | |
dados_grafico_taxa_acum_ano %>% | |
filter(data_nominal %in% input$trimestre_var) | |
# Criação do gráfico com Plotly | |
p <- plot_ly(data = dados_grafico_taxa_acum_ano, | |
x = ~data_nominal, | |
y = ~valor, | |
type = 'scatter', | |
mode = 'lines', | |
color = ~setores_e_subsetores, | |
colors = 'Accent', | |
text = ~paste0(format(data_nominal,"%m/%y"), ": ", round(valor,1),"%"), | |
hoverinfo = 'text') %>% | |
layout(title = list(text = 'Taxa acumulada em quatro trimestres', | |
font = list(color = '#FFFFFF')), | |
yaxis = list(title = 'Valores em (%)', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
xaxis = list(title = '', | |
titlefont = list(color = '#FFFFFF'), | |
tickfont = list(color = '#FFFFFF'), | |
gridcolor = '#101010'), | |
plot_bgcolor = '#1c1b1b', | |
paper_bgcolor = '#101010', | |
showlegend = TRUE, | |
legend = list(font = list(color = '#FFFFFF')))%>% | |
add_trace(data = sel_data, | |
type = 'scatter', | |
mode = 'text+markers', | |
text = ~str_wrap(paste0(format(data_nominal,"%m/%y"), ": ", round(valor,1),"%"), 100), | |
textposition = 'top left', | |
textfont = list(color = 'white', size = 10), | |
showlegend = FALSE) | |
# Exibição do gráfico | |
p | |
}) | |
``` | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment