--- title: "Cookbook ipeaplot" date: "`r Sys.Date()`" output: html_document: df_print: paged urlcolor: blue Vignette: > %\VignetteIndexEntry{Cookbook} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8}\n --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = identical(tolower(Sys.getenv("NOT_CRAN")), "true"), out.width = "100%" ) ``` O **ipeaplot** é um pacote em R desenvolvido para facilitar a padronização de gráficos e figuras seguindo a polÃtica editorial do Instituto de Pesquisa Econômica Aplicada (Ipea). Nesta vinheta, apresentamos exemplos práticos do uso do pacote para gerar visulizações de dados comuns em textos e relatórios do Ipea. Em algumas figuras, os ajustes necessários para atender à s diretrizes estilÃsticas do Editorial do Ipea demandam a criação de códigos especÃficos, extrapolando as configurações pré-estabelecidas no **ipeaplot**. Essa vinheta tem, por isso, um formato de *cookbook*, proporcionando orientações práticas para a utilização de outros recursos do `ggplot2`. Em todos os exemplos, é exibida a versão "bruta" da figura, tal como foi submetida à Coordenação do Editorial. Em seguida, indicamos como é possÃvel, com o **ipeaplot** e algumas linhas de código adicionais, atingir o nÃvel de padronização necessário à s publicações do Ipea. ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} # Leitura de bibliotecas library(ipeaplot) library(ggplot2) library(dplyr) library(data.table) library(abjData) library(geobr) library(reshape) library(knitr) ``` ```{r eval=FALSE, message=FALSE, warning=FALSE} # Leitura dos dados ## Gráfico 1 Ano <- factor(c(2000,2005,2010,2015,2020,2025,2030,2035,2040,2045,2050)) Populacao <- c(6.1,6.5,6.9,7.3,7.7,8.0,8.3,8.6,8.9,9.1,9.3) labels <- as.character(Populacao) labels <- gsub("." , "," , labels, fixed=T) base_graf1 <- data.frame(Ano,Populacao,labels) ## Gráfico 2 Ano <- factor(c(1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014)) Populacao<- c( 1.850116458, 1.791417471, 1.760491225, 1.751060624, 1.757374206, 1.773968217, 1.795950884, 1.81926587, 1.840930397, 1.860403495, 1.879485845, 1.90178203, 1.931384556, 1.96968284 , 2.011263472, 2.052385316, 2.083875031, 2.098137208, 2.091095193, 2.06831928, 2.043373483, 2.018775478, 1.985792138, 1.944170268, 1.898407101, 1.850171278, 1.807798778, 1.779963926, 1.770930519, 1.77532254 , 1.778741317, 1.77934085, 1.787498884, 1.803957627, 1.823106379, 1.844715108, 1.856490979, 1.844087147, 1.801286156, 1.7376904, 1.669804195, 1.607655387, 1.548374095, 1.4949701, 1.447065626, 1.399607643, 1.354384982, 1.318725392, 1.294773864, 1.279786607, 1.268049775, 1.257045807, 1.248951736, 1.243210965, 1.239058923, 1.236026043, 1.23309632, 1.229128787, 1.223387196, 1.215887987, 1.207869122, 1.198749205, 1.186540058, 1.170622969, 1.151783904) labels <- as.character(Populacao) labels <- gsub("." , "," , labels, fixed=T) base_graf2<- data.frame(Ano,Populacao, labels) ## Gráfico 3 # Valores Hipoteticos Pais <- factor(c("ÃŒndia","Japão","Alemanha","Reino Unido","França", "Arábia Saudita","Rússia","China","Estados Unidos")) Gasto <- c(40,50,50,60,70,40,90,207,640) base_graf3<- data.frame(Pais,Gasto) base_graf3$pos <- ifelse(base_graf3$Pais == 'Estados Unidos',2,1) library(dplyr) base_graf3 <- base_graf3 %>% group_by(pos) %>% mutate(total = sum(Gasto)) ## Gráfico 4 Ano <- seq(2009,2020,1) Exabytes <- c(130,360,750,1400,3100,6000,10000,14000,19000,25000,31500,40000) base_graf4 <- data.frame(Ano,Exabytes) ## Gráfico 5 Ano <- seq(2004,2013,1) Mundo <- c(4.2,3.8,4.1,4,1.5,-2,4,2.9,2.4,2.1) UE <- c(2.6,2.2,3.4,3.2,0.6,-4.6,2.1,1.7,-0.4,0) base_graf5 <- data.frame(Ano,Mundo,UE) base_graf5<- melt(base_graf5, id=c("Ano")) ## Gráfico 6 pais <- c("Ãustria","Bélgica","Bulgária","Croácia","Chipre","República Tcheca", "Dinamarca","Estônia","Finlândia","França","Alemanha","Grécia", "Hungria","Irlanda","Itália","Letônia","Lituânia","Luxemburgo", "Malta","Holanda","Polônia","Portugal","România", "Eslováquia","Eslovênia","Espanha","Suécia","Reino Unido") petroleo <- c(90,100,97,72,104,96,-37,60,90,97,96,100, 81,102,89,104,90,98,98,97,96,98,52,89,107,96,95,38) base_graf6 <- data.frame(pais,petroleo) ## Gráfico 7 pais <- c("Ãfrica do Sul","Brasil","Federação Russa", "China","Ãndia","OCDE") final <- c(0.695,0.55,0.43,0.413,0.38,0.315) inicio <- c(0.67,0.61,0.4,0.33,0.32,0.297) base_graf7 <- data.frame(pais,final,inicio) ## Gráfico 8 # link <- 'https://github.com/ipeadata-lab/ipeaplot/files' # base_graf8 <- data.table::fread(paste0(link,'/12239277/dados_grafico9.csv'), # dec = ",", encoding = 'Latin-1') base_graf8 <- data.table(pais = c("Nigéria", "Vietnã", "Ãndia", "Indonésia", "Malásia", "China", "Arábia Saudita", "Ãfrica do Sul", "México", "Turquia", "Brasil", "Argentina", "Austrália", "Rússia", "Polônia", "Canadá", "USA", "Fraça", "Reino Unido", "Espanha", "Coreia do Sul", "Itália", "Japão", "Alemanha"), `crescimento medio do PIB per capita_perct` = c(2,0.5, 0.8, 0.5, 1, 0.1, 1.1, 0.4, 0.5, 0.5, 0.3, 0.5, 0.7, -0.2, -0.1, 0.5, 0.5, 0.3, 0.32, 0.3, 0.12, 0.1, -0.1, 0), `crescimento populacional medio_perct` = c(3.9,5.3, 4.6, 4.2, 3.65, 4.2, 3.1, 3.62, 3.46, 3.3, 3.4, 3.1, 2.5, 3.37, 3.1, 2.2, 2.2, 2.2, 2.18, 2.1, 2.28, 1.9, 2.1, 1.8), `crescimento do PIB (ppc)_perct` = c(5.9,5.8, 5.4, 4.7, 4.65, 4.3, 4.2, 4.02, 3.96, 3.8, 3.7, 3.6, 3.2, 3.17, 3, 2.7, 2.7, 2.5, 2.5, 2.4, 2.4, 2, 2, 1.8)) ``` ## Gráfico 1 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico1.png")) #{fig-align="center", width='80%'} ``` ### Padrão ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} graf1 <- ggplot(data=base_graf1, aes(x=as.numeric(as.character(Ano)), y=Populacao)) + geom_bar(stat="identity", fill = '#015f96', width=2) + geom_rug(aes(x = as.numeric(as.character(Ano)) - 2.5), outside = TRUE, sides = "b", length = unit(2, "mm"), linewidth = 0.25) + coord_cartesian(expand = TRUE, clip = "off") + labs(fill = "", title="GRÃFICO 1", subtitle="Evolução do crescimento da população mundial 2000-2050\n(Em bilhões)", caption = 'Fonte: United Nations (2012a).\nTradução dos autores.') + theme_ipea(x_breaks = 11,include_ticks = F, include_x_text_title = F,include_y_text_title = F) + geom_text(aes(label = gsub("\\.", ",",round(Populacao,1))), hjust = 0.5, vjust = -0.5) ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico1.png"), width=724, height=546) print(graf1) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico1.png")) ``` ## Gráfico 2 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico2.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} base_graf2$Ano <- as.numeric(as.character(base_graf2$Ano)) ref <- (subset(base_graf2,substr(Ano,4,4) %in% c('5','0'))) graf2 <- ggplot(base_graf2, aes(x=Ano, y=Populacao, group = 1))+ geom_line(color = '#015f96') + labs(fill = "", title="GRÃFICO 2", subtitle="Taxa de crescimento da população mundial (Em %)", caption = 'Elaboração dos autores.') + theme_ipea(x_breaks = 14, x_text_angle = 90, include_ticks = F,expand_y_limit = T, include_x_text_title = F,include_y_text_title = F) + geom_rug(data = ref, aes(x = Ano+2),inherit.aes = FALSE, outside = TRUE, sides = "b", length = unit(2, "mm"), linewidth = 0.25) + coord_cartesian(clip = "off") ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico2.png"), width=724, height=546) print(graf2) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico2.png")) ``` ## Gráfico 3 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico3.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} temp <- base_graf3 %>% distinct(pos, .keep_all = T) graf3 <- ggplot(base_graf3, aes(x= as.character(pos), y=Gasto, fill=Pais, label = Pais))+ geom_bar(width = 0.5, stat = "identity", color= NA) + labs(y="Gastos com defesa", fill = "", title="GRÃFICO 3", subtitle="Gastos com defesa (Em bilhões de dólares)", caption = 'Fonte: Peter G. Peterson Foundation (2013).\nTradução dos autores.') + scale_fill_ipea() + geom_text( position = position_stack(vjust = 0.5), color = 'white') + geom_text(data = temp, aes(y = total ,label = paste0("U$ ",total)), vjust = -.5) + theme_ipea(legend.position="none", include_x_text_title = F) + theme(axis.ticks.x = ggplot2::element_blank(), axis.text.x = ggplot2::element_blank()) ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico3.png"), width=724, height=546) print(graf3) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico3.png")) ``` ## Gráfico 4 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico4.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE} graf4 <- ggplot(base_graf4, aes(x=Ano)) + geom_ribbon(aes(ymin=0, ymax=Exabytes), fill = "#015f96")+ labs(fill = "", title="GRÃFICO 4", subtitle="Evolução do volume de informação digital até 2020", caption = 'Fonte: IDC’s Digital Universe Study (Gantz e Reinsel, 2012).') + theme_ipea(legend.position="none",expand_x_limit = F, x_breaks = 10, y_breaks = 4, include_x_text_title = F,include_y_text_title = F) ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico4.png"), width=724, height=546) print(graf4) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico4.png")) ``` ## Gráfico 5 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico5.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} graf5 <- ggplot(base_graf5, aes(Ano, value, group=variable, color=variable))+ geom_line(linewidth=1)+ geom_point(aes(shape=variable, fill = variable), size=3, stroke=1.5, show.legend = F)+ labs(color = "", title="GRÃFICO 5", subtitle="Crescimento anual do PIB da União Europeia (2004-2013) (Em %)", caption = 'Fonte: World Bank (2014).\nTradução dos autores.\nObs.: Os dados foram coletados no sÃtio do Banco Mundial.\nDisponÃvel em: <http://goo.gl/IvtZ1a>. Acesso em: 26 set. 2014.') + theme_ipea(x_breaks = 10, y_breaks = 10, legend.position = 'bottom', expand_y_limit = T,expand_x_limit = F, include_x_text_title = F,include_y_text_title = F) + scale_color_ipea(palette_direction = -1, ) + scale_shape_manual(values = c(19, 21)) + scale_fill_manual(values = c(NA,"white")) ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico5.png"), width=724, height=546) print(graf5) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico5.png")) ``` ## Gráfico 6 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico6.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} base_graf6$pais<- factor(base_graf6$pais, levels=rev(sort(base_graf6$pais))) graf6 <- ggplot(data=base_graf6, aes(x=pais, y=petroleo)) + geom_bar(stat="identity", fill = '#015f96') + coord_flip() + labs(fill = "", title="GRÃFICO 6", subtitle="Importações de energia em termos do consumo total\nde energia dos paÃses da União Europeia", caption = 'Fonte: Eurostat (2014).\nTradução dos autores.') + theme_ipea(legend.position = 'none', expand_x_limit = F, include_x_text_title = F,include_y_text_title = F) ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico6.png"), width=724, height=546) print(graf6) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico6.png")) ``` ## Gráfico 7 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico7.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} base_graf7<- melt(base_graf7, id=c("pais")) graf7 <- ggplot(data=base_graf7, aes(x=pais, y=value, group=variable, fill=variable)) + geom_bar(position='dodge',stat="identity") + coord_flip()+ labs(fill = "", title="GRÃFICO 7", subtitle="Mudanças nos nÃveis de desigualdade do BRICS, calculadas pelo coeficiente\nGini, entre o inÃcio da década de 1990 e o final da década de 2000", caption = '') + theme_ipea(legend.position = 'bottom', include_x_text_title = F,include_y_text_title = F) + scale_fill_ipea() ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico7.png"), width=724, height=546) print(graf7) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico7.png")) ``` ## Gráfico 8 ### Original ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", fig.width=6, fig.height=6} knitr::include_graphics(paste0(getwd(),"/prints_original/grafico8.png")) ``` ### Padrão Ipea ```{r eval=FALSE, message=FALSE, warning=FALSE} ######## GRAFICO 8 base_graf8_aux <- base_graf8[,c(1,4)] base_graf8_aux$n <- 1:nrow(base_graf8_aux) base_graf8_new <- base_graf8[,-4] base_graf8_new<- melt(base_graf8_new, id=c("pais")) base_graf8_new <- base_graf8_new %>% group_by(variable) %>% mutate(n = 1:n()) graf8 <- ggplot() + geom_bar(data=base_graf8_new, aes(x = reorder(pais, n), y=value, group=variable, fill=variable), stat="identity", width = 0.5) + labs(fill = "", title="GRÃFICO 8", subtitle="Crescimento médio real do PIB em PPC (2011-2050) (Em %)", caption = 'Fonte: PwC (2014).\nTradução dos autores') + geom_line(data=base_graf8_aux, aes(x = reorder(pais, n) ,y=`crescimento do PIB (ppc)_perct`, group = 1), color = 'gray') + scale_fill_ipea() + theme_ipea(legend.position = 'bottom', x_text_angle = 90) + coord_cartesian(clip = "off") ``` ```{r eval=FALSE, message=FALSE, warning=FALSE, results='hide'} png(paste0(getwd(),"/prints_ipeaplot/grafico8.png"), width=724, height=546) print(graf8) dev.off() ``` ```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.align="center", out.width = "100%"} knitr::include_graphics(paste0(getwd(),"/prints_ipeaplot/grafico8.png")) ```