Membuat Animasi

Membuat animasi

HALO! kembali lagi dengan postingan baru HEHE. Saya pusing dengan skripsi, jadi refreshingnya kesini aja deh :D. Ohiya kita bisa buat grafik animasi dengan R loh! baru tau? sama! saya juga baru tau XD dari dosen pembimbing. Langsung aja kita mulai demo nya yuk. Download datanya DISINI

INPUT DATA

padi <- read.csv("E:\\BLOG\\MATERI\\MEMBUAT ANIMASI\\datapadi.csv", header = TRUE, sep = ";")
padi$Provinsi <- as.character(padi$Provinsi)
padi$Pulau <- as.character(padi$Pulau)
str(padi)
## 'data.frame':    363 obs. of  6 variables:
##  $ Provinsi     : chr  "Aceh" "Aceh" "Aceh" "Aceh" ...
##  $ Pulau        : chr  "Pulau Sumatera" "Pulau Sumatera" "Pulau Sumatera" "Pulau Sumatera" ...
##  $ Tahun        : int  2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 ...
##  $ Produktivitas: num  42.1 41.8 41.8 42.1 42.5 ...
##  $ Produksi     : int  1547499 1552078 1411650 1350748 1533369 1402287 1556858 1582393 1772962 1788738 ...
##  $ luas_lahan   : int  348232 346305 356649 315277 312803 323010 359751 313649 307556 308973 ...

Jadi pada materi kali ini kita akan membuat visualisasi dalam bentuk animasi produksi padi, luas lahan dan produktivitas tiap provinsi di indonesia sejak tahun 2003 sampai 2015. Seperti biasaa, langkah awal kita panggil dulu data nya ke direktori kerja.. pada command read.csv disesuuikan dengan lokasi file tempat teman2 menyimpan datanya ya. kalau sep = itu untuk pemisah atau separator yang digunakan. biasanya ada laptop yang menggunakan pemisah (;) ada yang (,). Kemudia perintah as.character itu untuk mengubah tipe datanya menjadi variabel. karena sebelumnya tipe data variabel provinsi dan pula itu factor.

SUBSET DATA

padi_sub <- padi[padi$Produksi > 8000000,]
padi_sub$tinggi <- ifelse(padi_sub$Produksi > 8000000, padi_sub$Provinsi, "")

Perintah diatas untuk memilah data yang ingin kita gunakan. karena nantinya hasil plot ingin diketahui provinsi mana yang memiliki total produksi lebih dari 8juta ton, maka harus kita identifikasi terlebih dahulu.

LOAD PACKAGE

library(ggplot2)
library(gganimate)
library(ggrepel)

options(scipen = 100)

mapping <- aes(x = Produksi , y = luas_lahan, 
               col = Pulau, size = Produktivitas,
               frame = Tahun) 

Perintah scipen = untuk mengatur format scientific pada R. jika kita pilih nilai minus (-) maka secara otomatis nanti hasil angka atau perhitungan kita akan keluar dengan format scientific. seperti 1e+03. Pun sebaliknya, jika kita atur dengan nilai positif maka hasilnya akan normal tanpa eksponensial. Perintah aes merupakan command dari package ggplot2berfungsi untuk mengatur variabel yang digunakan dan segala macam grafik yang ingin kita sisipkan. Pada kasus ini kita akan membuat sumbu x dengan variabel produksi, kemudian sumbu y dengan variabel luas lahan, kemudian identifikasi warna dengan kategori pulau, dan ukuran point berdasarkan produktivitas dan mengatur tiap perubahan grafik nya berdasarkan variabel tahun.

MEMBUAT GRAFIK ANIMASI

theme_set(theme_linedraw())
grafik <- ggplot(padi, mapping = mapping) +
  geom_point() +
  labs(title="Produksi & luas lahan", y="luas lahan (Ha)", x="Produksi (ton)", caption="Sumber data: Badan Pusat Statistik") +
  geom_label_repel(aes(label=tinggi), size=3, data=padi_sub) +
  theme(plot.title = element_text(size = 20, face = "bold", hjust = 0.5, color = "black", family="American Typewriter"), legend.position = "none")+
  scale_color_manual(name="Pulau", 
                       values = c("brown", "red", 
                                  "green", 
                                  "yellow",
                                  "blue", 
                                  "orange"))

Selanjtunya kita memasuki langkah mengkontruksi grafiknya. Perintah theme_set() untuk mengatur tema dari grafik. Ada beberapa macam pilihan. temen2 dapat mengskplor sendiri xD. Kemudian perintah labs() untuk mengatur label pada grafik. Sedangkan perintah geom_label_rapel() untuk menambahkan label pada data yang pada tahap sebelumnya telah kita pilah/subset. yaitu provinsi yang memiliki produksi padi lebih dari 8juta ton.

MEMANGGIL GRAFIK ANIMASI

gganimate(grafik, "output.gif")

TARAAA. begitu hasilnya xD. sebenarnya masih bisa lebih dikembangkan lagi grafiknya dengan beberapa fitur yang ada di package ggplot2. namun pada materi ini cukup segitu dulu yak, pertemuan selanjutnya kita belajar bersama lagi. Temen2 dapat menyimpan hasil grafiknya dengan command `gganimate(namagrafik, “namafile.gif”).

Jadi berdasarkan gif diatas dapat diperoleh informasi, provinsi jawa barat, jawa tengah dan jawa timur memiliki jumlah produksi padi yang paling tinggi serta lahan sawah yang terluas sejak tahun 2003 hingga 2015. Sekian dan terimakasih, semoga bermanfaat!xD


Referensi : [1] http://www.sthda.com/english/articles/16-r-packages/58-gganimate-create-animations-with-ggplot2/

[2] http://r-statistics.co/Complete-Ggplot2-Tutorial-Part2-Customizing-Theme-With-R-Code.html

Terpopuler