Pada artikel ini akan dijelaskan step by step membuat animasi di R menggunakan packages gganimate. gganimate adalah ekstensi dari packages gglplot2 untuk membuat animasi. Untuk membuat animasi grafik dibutuhkan beberapa packages diantaranaya gapminder ggplot2 gganimate

Load Packages

library(gapminder)
library(ggplot2)
library(gganimate)

Tapap selanjutnya adalah import data dari gapminder di dalam dataset ini terdapat 1704 observasi dan 6 variabel. Variabel dalam dataset ini adalah:

  • Country adalah Nama Negara

  • Continent adalah Nama Benua

  • Year adalah Tahun dari setiap data

  • LifeExp adalah Angka harapan Hidup

  • Pop adalah Populasi setiap negara per tahun

  • gdpPercap adalah GDP per kapita setiap negara per tahun

Import Data

library(gapminder)
data=gapminder
data

Membuat Plot Dasar Statis

sebelum membuat animasi, langkah awal adalah membuat plot dasar yang static dengan gglplot2 dan simpan gambar dengan nama gapminder_plot

library(gapminder)
library(ggplot2)
gapminder_plot <- ggplot(
  gapminder, 
  aes(x = gdpPercap, y=lifeExp, size = pop, colour = continent, size = pop, frame = year)
  ) +
  geom_point(alpha = 0.6) +
  scale_color_viridis_d() +
  scale_x_log10() +
  labs(x = "GDP per capita", y = "Life expectancy")
gapminder_plot

Menambahkan Transisi

Untuk membuat transisi kita membutuhkan fungsi transition_time() panjang transisi setiap negara akan diatur sesuai dengan perbedaan waktu aktual

library(gganimate) #transition time
## Warning: package 'gganimate' was built under R version 4.1.3
gapminder_plot + transition_time(year) +
  labs(title = "Year: {frame_time}")

Membuat Plot Tiap Benua

library(gganimate)
gapminder_plot + facet_wrap(~continent) +
  transition_time(year) +
  labs(title = "Year: {frame_time}")

Membuat Plot Dinamis

library(gganimate)
gapminder_plot + transition_time(year) +
  labs(title = "Year: {frame_time}") +
  view_follow(fixed_y = TRUE)

Membuat Bayangan Animasi

library(gganimate)
gapminder_plot + transition_time(year) +
  labs(title = "Year: {frame_time}") +
  shadow_wake(wake_length = 0.1, alpha = FALSE)

Menampilkan Jejak Data

library(gganimate)
gapminder_plot + transition_time(year) +
  labs(title = "Year: {frame_time}") +
  shadow_mark(alpha = 0.3, size = 0.5)