Visualisasi Data Statis atau Interaktif Statis?

Pernah nggak sih kamu merasa data itu ribet dan bikin ngantuk? 🤯 Deretan angka dan tabel yang bikin kepala pusing. Tapi bayangkan kalau data bisa tampil lebih hidup, lebih menarik, bahkan interaktif! Nah, di sinilah ggplot2 dan Plotly beraksi sebagai duo andalan dalam dunia visualisasi data. 🎨📊 Mau tahu mana yang lebih cocok untuk kebutuhanmu? Yuk, simak perbandingannya! 🚀️

ggplot2
Plotly
DataViz
Chart
Author
Published

Tuesday, the 24th of December, 2024

Pernah nggak sih kamu merasa data itu ribet dan bikin ngantuk? 🤯 Deretan angka dan tabel yang bikin kepala pusing. Tapi bayangkan kalau data bisa tampil lebih hidup, lebih menarik, bahkan interaktif! Nah, di sinilah ggplot2 dan Plotly beraksi sebagai duo andalan dalam dunia visualisasi data. 🎨📊 Mau tahu mana yang lebih cocok untuk kebutuhanmu? Yuk, simak perbandingannya! 🚀️

gganimate pada gapminder.

Dalam dunia analisis data, visualisasi merupakan elemen penting untuk menyajikan data secara intuitif dan informatif. Dua library populer dalam ekosistem R untuk keperluan ini adalah ggplot2 dan Plotly. Masing-masing memiliki keunggulan dan keterbatasan tergantung pada kebutuhan pengguna.

Blog ini akan membahas perbandingan fitur, keunggulan, dan contoh implementasi dari kedua library ini dengan Quarto

1 Histogram

Histogram digunakan untuk menampilkan distribusi data numerik. Berikut adalah cara membuat histogram menggunakan ggplot2 dan Plotly.

library(ggplot2)

# Membuat histogram menggunakan ggplot2
ggplot(mtcars, aes(x = mpg)) +
  geom_histogram(binwidth = 2, fill = "blue", color = "black") +
  labs(title = "Distribusi MPG (ggplot2)",
       x = "MPG",
       y = "Frekuensi") +
  theme_minimal()

library(plotly)

# Membuat histogram menggunakan Plotly
plot_ly(mtcars, x = ~mpg, type = "histogram") %>%
  layout(title = "Distribusi MPG (Plotly)",
         xaxis = list(title = "MPG"),
         yaxis = list(title = "Frekuensi"))

2 Scatter Plot

Scatter plot digunakan untuk menunjukkan hubungan antara dua variabel numerik. Perbedaan antara ggplot2 dan Plotly dapat terlihat pada contoh berikut.

# Membuat scatter plot dengan ggplot2
ggplot(mtcars, aes(x = hp, y = mpg, color = factor(cyl))) +
  geom_point(size = 3) +
  labs(title = "Hubungan Horsepower dan MPG (ggplot2)",
       x = "Horsepower",
       y = "MPG") +
  theme_minimal()

# Membuat scatter plot dengan Plotly
plot_ly(mtcars, x = ~hp, y = ~mpg, color = ~factor(cyl),
        type = 'scatter', mode = 'markers') %>%
  layout(title = "Hubungan Horsepower dan MPG (Plotly)",
         xaxis = list(title = "Horsepower"),
         yaxis = list(title = "MPG"))

3 Line Chart

Line chart digunakan untuk memvisualisasikan data deret waktu. Berikut adalah cara membuatnya dengan ggplot2 dan Plotly.

# Membuat line chart dengan ggplot2
ggplot(economics, aes(x = date, y = unemploy)) +
  geom_line(color = "red", size = 1) +
  labs(title = "Jumlah Pengangguran di AS (ggplot2)",
       x = "Tahun",
       y = "Jumlah Pengangguran") +
  theme_minimal()

# Membuat line chart dengan Plotly
plot_ly(economics, x = ~date, y = ~unemploy, type = 'scatter', mode = 'lines') %>%
  layout(title = "Jumlah Pengangguran di AS (Plotly)",
         xaxis = list(title = "Tahun"),
         yaxis = list(title = "Jumlah Pengangguran"))

4 Pie Chart

Pie chart digunakan untuk menampilkan distribusi kategori dalam bentuk proporsi.

library(dplyr)

# Menghitung proporsi jumlah silinder
data_pie <- mtcars %>%
  count(cyl) %>%
  mutate(prop = n / sum(n) * 100)

# Membuat pie chart menggunakan ggplot2 dengan pendekatan bar plot
ggplot(data_pie, aes(x = "", y = prop, fill = factor(cyl))) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  labs(title = "Proporsi Jumlah Silinder Mobil (ggplot2)",
       fill = "Silinder") +
  theme_void()

# Membuat pie chart dengan Plotly
plot_ly(data_pie, labels = ~cyl, values = ~prop, type = 'pie') %>%
  layout(title = "Proporsi Jumlah Silinder Mobil (Plotly)")

5 Interactive Chart

Plotly menawarkan fitur interaktivitas, sedangkan ggplot2 hanya menghasilkan grafik statis. Berikut adalah perbandingannya.

# Membuat line chart statis dengan ggplot2
ggplot(economics, aes(x = date, y = unemploy)) +
  geom_line(color = "blue", size = 1) +
  labs(title = "Tren Pengangguran di AS (ggplot2)",
       x = "Tahun",
       y = "Jumlah Pengangguran") +
  theme_minimal()

# Membuat line chart interaktif dengan Plotly
plot_ly(economics, x = ~date, y = ~unemploy, type = 'scatter', mode = 'lines') %>%
  layout(title = "Tren Pengangguran di AS (Plotly)",
         xaxis = list(title = "Tahun"),
         yaxis = list(title = "Jumlah Pengangguran"))

6 Perbandingan Fitur ggplot2 vs Plotly

Fitur ggplot2 Plotly
Interaktivitas ❌ Tidak interaktif ✅ Interaktif (zoom, hover, panning)
Kemudahan Penggunaan ✅ Lebih terstruktur dengan Grammar of Graphics 🔶 Sedikit lebih kompleks karena berbasis list JSON-like
Kustomisasi ✅ Sangat fleksibel dengan banyak theme dan ekstensi 🔶 Fleksibel tetapi tidak sebanyak ggplot2
Kecepatan Render ✅ Cepat untuk dataset besar ❌ Bisa lebih lambat untuk dataset besar karena interaktivitas
Ekosistem & Kompatibilitas ✅ Kuat dalam ekosistem tidyverse ✅ Bisa diekspor ke web dan dashboard (Shiny, Dash)
Back to top