ProfDaviRocha
27 de março de 2019
O ggplot2 fornece gráficos muito profissionais. Você pode fazer alteração em praticamente qualquer parte do seu gráfico variando as componentes da gramática dos gráficos. Porém, você pode deixar sua apresentação ainda mais interessante usando o pacote gganimate . Com ele você pode criar uma animação do seu plot no ggplot2.
Será usado aqui o pacote gapminder que contém o dataset gapminder. Veja as 6 primeiras linhas:
library(dplyr)
library(gapminder)
head(gapminder)## # A tibble: 6 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 1952 28.8 8425333 779.
## 2 Afghanistan Asia 1957 30.3 9240934 821.
## 3 Afghanistan Asia 1962 32.0 10267083 853.
## 4 Afghanistan Asia 1967 34.0 11537966 836.
## 5 Afghanistan Asia 1972 36.1 13079460 740.
## 6 Afghanistan Asia 1977 38.4 14880372 786.
Nesse dataset tem-se as seguintes variáveis:
glimpse(gapminder)## Observations: 1,704
## Variables: 6
## $ country <fct> Afghanistan, Afghanistan, Afghanistan, Afghanistan, ...
## $ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia...
## $ year <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992...
## $ lifeExp <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.8...
## $ pop <int> 8425333, 9240934, 10267083, 11537966, 13079460, 1488...
## $ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 78...
E o range de anos é de 1952 a 2007:
a<-c(min(gapminder$year),max(gapminder$year))
names(a)<- c('minimo', 'maximo')
a## minimo maximo
## 1952 2007
Abaixo está o gráfico estático das variáveis PIB per Capita(gdpPercap) e Expectativa de vida(lifeExp) usando o ggplot. O tamanho do circulo varia com o tamanho da população e as cores de acordo com o país:
library(ggplot2)
library(gifski)
theme_set(theme_bw())
p <- ggplot(gapminder, aes(x = gdpPercap, y=lifeExp, size = pop, colour = country)) + geom_point(show.legend = FALSE, alpha = 0.7) +
scale_color_viridis_d() + scale_size(range = c(2, 12)) + scale_x_log10() +
labs(x = "GDP per capita", y = "Life expectancy")+ ggtitle("GDP per capita x Life expectancy")
pPerceba que fica difícil analisar como cada país/continente varia nos anos.
O gráfico anterior é estático e dificulta a comparação entre os países, logo, para deixar o gráfico ainda mais dinâmico, será usado pacote gganimate. Assim será possível visualiar melhor as diferenças entre países:
library(gganimate)
p + transition_time(year) +
labs(title = "Year: {frame_time}")Muito legal, não é! Pode-se ainda melhorar. Imagine que você queira mostrar a variação entre os continentes.
Usando o comando facet_wrap do ggplot2 pode-se separar os continentes e comparar como cada um variou ao longo desses anos
p + facet_wrap(~continent) +
transition_time(year) +
labs(title = "Year: {frame_time}")Muito legal!Observe que há muitas possibilidades e variações do que fiz aqui, afinal você pode usar toda a versatilidade do ggplot2 e ainda combinar com o gganimate!
Keep calm and analysing data!