Criando GIFs no R | IBPAD - Instituto Brasileiro de Pesquisa e Análise de Dados
Criando GIFs no R
19/09/2016 por Robert McDonnell
R é famoso por suas capacidades gráficas, mas podemos integrá-lo com browsers modernos da internet para criar gráficos cada vez mais úteis. Por exemplo, podemos mostrar a mudança numa variável sobre valores de duas outras variáveis usando gifs. Neste post, eu vou mostrar como criar um gráfico gif no R que demostra os preços de casas e construção no Brasil de 2000 até 2016 por cada estado. O formato gif nos permite fazer isso num gráfico só; senão, precisaríamos de 27 gráficos separados ou um gráfico muito confuso.
Primeiro, vamos importar os dados, que são do IBGE, no R. Nós vamos ler do meu github, usando uma função que organiza os dados e arrumá-los do jeito que precisamos. (Para saber mais da função, simplesmente digite o nome dela no console do R.) Se você não tem algum dos pacotes que eu uso abaixo, vai precisar o instalar com a função install.packages(" "), com o nome do pacote entre aspas.
preco <- read_csv("https://raw.githubusercontent.com/RobertMyles/various/master/data/series_historicas.csv")
source_gist("82320196db01c1c95e152955e5de9edc", filename = "clean_ibge.R",
sha1 = "c18480aa7c67ccc9ae6756310e41bcb3351d455f")
preco <- clean_ibge(preco)
Agora os dados estão no formato que precisamos. Para criar o gif, vamos usar mais três pacotes do R. Neste primeiro gif, o intervalo entre transições é controlado pelo interval.
p <- ggplot(preco, aes(time, sum, color = UF, frame = UF)) +
geom_line(aes(cumulative = FALSE)) +
scale_y_continuous(labels=dollar_format(prefix="R$"))
gg_animate(p, title_frame = T, interval=3)
E neste segundo, usamos cumulative = TRUE para colocar as linhas dos preços uma em cima da outra.
q <- ggplot(preco, aes(time, sum, color = UF, frame = UF)) +
geom_line(aes(cumulative = TRUE)) +
gg_animate(q, title_frame = T, interval=2)
Com o pacote ggplot2 e tudo que pode-se construir cima dele, é muito fácil customizar os gráficos. Exemplos podem ser vistos aqui e as opções de animação podem ser estendidas com o pacote tweenr.