Visualisasi Data menggunakan ggplot2 di R (Bagian 1)

Pendahuluan

gglpot2 merupakan Packages yang diciptakan oleh Hadley Wickham dengan kelebihannya dalam pembuatan gambar yang elegan dan kompleks. Popularitas ggplot2 di komunitas R tidak diragukan lagi. ggplot2 memungkinkan anda untuk membuat grafik yang merepresentasikan data numerik dan kategorik baik univariat maupun multivariat secara simultan. Pengelompokan yang dapat diwakili oleh warna, simbol, ukuran dan ketebalan point. ggplot2 mempunyai banyak fungsi dan pilihan untuk plot yang akan ditampilkan.

Exploring ggplot2

untuk mendapatkan gambaran secara umum tentang ggplot2, dalam tutorial ini kita akan mencoba beberapa perintah dasar ggplot2.

Layer dalam ggplot2 packages
  1. RStudio juga dapat diinstal (download dari http://rstudio.com/)
  2. Buka RStudio dan install packages install.packages("tidyverse") untuk menginstal paket visualisasi data termasuk ggplot2

Ada apa dengan ggplot2 ?

kelebihan ggplot2

  • sangat flexible
  • lengkap untuk sebuah sistem visualisasi
  • sangat banyak komunitas
  • perkembangannya sangat cepat

Setup : install tidyverse packages

ggplot2 merupakan packages yang ada di dalam tidyverse. Install ggplot2 melalui tidyverse library

#install.packages("tidyverse)
library(tidyverse)

Contoh Data: Housing prices

berikut merupakan link untuk data download disini.

housing <- read_csv("datasets/landdata-states.csv)
head(housing[1:5])

Kelebihan ggplot2 dengan grafis umum

Jika dibandingkan dengan tampilan grafis umum tanpa menggunakan ggplot2 adalah

  • untuk visualisasi yang kompleks, ggplot lebih simple
  • tidak menggunakan metode yang ribet (data harus dalam bentuk data.frame)
  • menggunakan sistem yang berbeda untuk menambahkan elemen dalam plot

ggplot2 VS Base Graphs

hist(housing$Home.Value)
library(ggplot2)
ggplot(housing, aes(x = Home.Value))+ geom_histogram()

ggplot2 base graphics VS ggplot untuk grafis yang lebih rumit

Syntax untuk scatter plot berwarna yang umum digunakan

plot(Home.Value ~ Date,
col = factor(State),
data = filter(housing, State %in% c("MA", "TX")))
legend("topleft",
legend = c("MA", "TX"),
col = c("black", "red"),
pch = 1)

ggplot2 output

ggplot(filter(housing, State %in% c("MA","TX")),
aes(x = Date,
y = Home.Value,
color = State))+
geom_point()

bagaimana menurut anda ???

Obyek Geometric dan Aesthetics

Aesthetic Mapping

dalam packages ggplot aesthetic berarti sesuatu yang bisa dilihat. Contoh:

  • warna
  • latar belakang
  • bentuk
  • jenis garis
  • ukuran

Obyek Geometri

Objek geometrik adalah tanda aktual yang kita tempatkan di plot, misalnya:

  • lines (geom_line, digunakan untuk time series, regresi, dsb)
  • boxplot (geom_boxplot, digunakan untuk boxplot)
help.search("geom_", package = "ggplot2")

Points (Scatterplot)

pada bagian sebelumnya kita sudah menggunakan obyek geometrik dan layer asethetic, selanjutnya kita akan coba untuk membuat layer dengan geom_point untuk mendapatkan visual dari variabel x dan y.

hp2001Q1 <- filter(housing, Date == 2001.25)
ggplot(hp2001Q1,
aes(y = Structure.Cost, x = Land.Values)) +
geom_point
ggplot(hp2001Q1,
aes(y = Structure.Cost, x = log(Land.Value)))+
geom_point()

Lines (Line Prediction)

plot yang dibentuk dengan menggunakan ggplot2 bisa lebih dari 2 jenis. Dalam point ini kita akan menambahkan sebuah garis regresi (trend line) yang dibentuk dengan menggunakan ggplot2. Berikut merupakan syntaxnya.

hp2001Q1$pred.SC <- predict(lm(Structure.Cost~log(Land.value), 
data = hp2001Q1))
p1 <- ggplot(hp2001Q1, aes(x = log(Land.Value), y = Structure.Cost))
p1 + geom_point(aes(color = Home.Value)) +
geom_line(aes(y=pred.SC))

Smoothers

Jika diperhatikan pada gambar …. didapatkan bahwa garis dugaannya berupa garis yang linier, namun jika dilihat sebaran datanya tidak mengikuti garis tersbut. oleh karena itu akan kita coba dengan menggunakan smoothers untuk mendapatkan garis prediksi dengan eror yang lebih kecil (harapan).

p1 + 
geom_point(aes(color = Home.value)) +
geom_smooth()

Text (Label Points)

berikut merupakan tampilan lain dari scatterplot yaitu dengan menggunakan text untuk titik- titik dalam scatterplot.

p1 + 
geom_text(aes(label = State), size = 2)
## Istall packages("ggrepel")
library(ggrepel)
p1 + geom_point()+
geom_text_repel(aes(label = State), size = 2)

Asethetic Mapping VS Assignment

dalam hal ini kita akan membedakan data dengan kategori yang berbeda, sehingga kita bisa mengkombinasikan 3 variabel sekaligus dalam satu gambar.

p1 + 
geom_point(aes(size = 2), #salah, karena 2 bukan variabel
color = "red") #semua titik di plot merah
p1 + 
geom_point(aes(color = Home.Value, shape = region))
  1. Ubah warna pointnya menjadi merah
  2. Buatlah visualisasi dengan Region berdasarkan warna
  3. Buatlah titiknya menjadi lebih besar dengan settingan ukuran 3
  4. Gambarkan ukuran titik menjadi point untuk HDI.Rank

    Ayundyah Kesumawati

    Written by

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade