Como desafio pessoal às vezes tento replicar gráficos que acho interessante. O portal Nexo, em particular, costuma ter lindas visualizações de dados. Vou tentar replicar os gráficos desta publicação. Como o foco desta postagem está na visualização e em mostrar exemplos de aplicações do ggplot2 vou omitir as (longas) manipulações de dados, deixando indicadas as fontes (com links) que usei. Numa postagem futura pretendo fazer um tutorial mais detalhado de como reproduzir estes gráficos. O código que uso para fazer estas visualizações está disponível no meu gitlab.

Pacotes

library("extrafont")
library("ggplot2")
library("dplyr")
library("reshape2")
library("readxl")
library("ggrepel")

Dados

Dados são do Maddison Project Database, disponíveis aqui

País Ano Região PIB Crescimento
Afghanistan 1951 Asia 20063848 1
Afghanistan 1952 Asia 20742350 1
Afghanistan 1953 Asia 22015464 1
Afghanistan 1954 Asia 22483328 1
Afghanistan 1955 Asia 22929889 1
Afghanistan 1956 Asia 23959928 1
Afghanistan 1957 Asia 23961913 1
Afghanistan 1958 Asia 25307436 1
Afghanistan 1959 Asia 26035625 1
Afghanistan 1960 Asia 26970776 1
Afghanistan 1961 Asia 27196444 1
Afghanistan 1962 Asia 27669565 1
Afghanistan 1963 Asia 28174183 1
Afghanistan 1964 Asia 28718712 1
Afghanistan 1965 Asia 29364660 1
Afghanistan 1966 Asia 29652846 1
Afghanistan 1967 Asia 30483396 1
Afghanistan 1968 Asia 31572750 1
Afghanistan 1969 Asia 32077458 1
Afghanistan 1970 Asia 32718392 1

Europa

Neste primeiro gráfico cada quadradinho representa uma variável binária que indica se o país estava em expansão ou recessão. Mapeio esta variável usando o geom_tile e depois ajusto o tamanho dos quadradinhos. O resto do trabalho é simplesmente ajustar os eixos, os nomes das legendas, etc. No código fonte da página do Nexo encontrei as fontes usadas nos gráficos: Gotham Rounded Bold e Gotham Rounded Light. O pacote extrafont me permite carregar estas fontes no R. No gráfico abaixo, o eixo vertical fica um pouco abarrotado. Seria possível ajustar isto na hora de salvar a imagem (i.e., mudando os parâmetros da função ggsave), mas como aqui no site todas as figuras tem um tamanho máximo fica assim mesmo.

América do Sul

Para fazer o mesmo gráfico para os países da América do Sul e da Ásia basta filtrar por estas regiões. Esta é uma das grandes vantagens do R: para fazer os dois gráficos abaixo só precisei mudar uma linha de código.

Ásia

Número de países com queda no PIB

Gráfico 2

Este gráfico conta o número absoluto de países que estava em recessão durante um determinado ano. Como o número de países dentro da amostra também cresce com o tempo, uma linha cinza foi adicionada para representar isto. Resolvi suprimir as flechas que aparecem na postagem original, pois a implementação disto no ggplot é muito trabalhosa e o resultado final não é tão bonito.

Gráfico 3

Este último gráfico mostra o número relativo de países em recessão.

Gráfico extra

Resolvi fazer um gráfico próprio mostrando o crescimento do PIB nos países da América Latina dando destaque para alguns.