Topik ini membahas aestetik (aesthetic) sebagai kanal yang membawa kolom data ke properti visual grafik. Pembahasan mencakup pemetaan (mapping) warna untuk membedakan kelompok, kanal-kanal lain seperti ukuran, bentuk, dan transparansi, perbedaan pemetaan di dalam aes() dengan pengaturan nilai tetap di luarnya, serta legenda yang muncul otomatis dari pemetaan. Setelah topik ini dipelajari, kolom data yang tepat dapat dipetakan ke kanal yang tepat tanpa mengatur titik demi titik secara manual.
Pemetaan warna per kelompok#
Kanal color adalah kanal yang paling sering dipakai untuk membedakan kelompok. Kolom kategori dipetakan ke color di dalam aes(), dan ggplot2 mewarnai setiap titik sesuai nilainya. Data iris dipakai lagi, kali ini dengan kolom Species yang memuat tiga spesies.
library(tidyverse)── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.1 ✔ readr 2.2.0
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.3 ✔ tibble 3.3.1
✔ lubridate 1.9.5 ✔ tidyr 1.3.2
✔ purrr 1.2.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errorsspesies <- as_tibble(iris) |>
select(Petal.Length, Petal.Width, Species)
spesies |> count(Species)# A tibble: 3 × 2
Species n
<fct> <int>
1 setosa 50
2 versicolor 50
3 virginica 50Tiga spesies dengan masing-masing 50 pengukuran siap dipetakan. Pemetaan color = Species ditulis di dalam aes(), dan warna pemisahnya dipilih oleh skala (scale) bawaan.
p <- ggplot(iris, aes(x = Petal.Length, y = Petal.Width, color = Species)) +
geom_point(size = 2)
ggsave("spesies-warna.svg", p, width = 5, height = 3.2)Legenda muncul otomatis bersama pemetaan, tanpa argumen tambahan apa pun. Warna bawaan untuk kategori diambil dari rona (hue) yang berbeda-beda pada skala bawaan ggplot2, dan pemisahan ketiga spesies terlihat jelas karena panjang serta lebar kelopak memang berbeda antar spesies. Apabila kelompok lebih baik dipisah ke panel tersendiri alih-alih dibedakan warnanya, pemecahan panel dengan facet menyediakan jalan lain yang dibahas pada bagian tersendiri di modul ini.
Perlu dicatat bahwa color mewarnai garis dan tepi bentuk, sedangkan fill mewarnai isian. Titik dan garis membaca kanal color, sedangkan batang, kotak, dan area membaca kanal fill. Dua kanal ini sering tertukar saat pertama kali memakai ggplot2.
Kanal aestetik dan pilihan variabelnya#
Selain color, tersedia beberapa kanal lain yang bekerja dengan pola sama, yaitu dipetakan di dalam aes() dan diterjemahkan oleh skala menjadi properti visual. Tabel berikut merangkum kanal yang paling umum beserta penggunaannya yang wajar.
| Kanal | Berlaku utamanya pada | Pemetaan yang wajar |
|---|---|---|
color | titik, garis, teks | kategori atau nilai numerik |
fill | batang, kotak, area | kategori atau nilai numerik |
size | titik, garis, teks | nilai numerik sebagai besar kecil |
shape | titik | kategori dengan tingkat sedikit |
alpha | semua bentuk | nilai numerik sebagai kepekatan |
Skala diskrit dan skala kontinu menerjemahkan pemetaan dengan cara berbeda. Variabel kategori seperti Species dipecah ke warna yang berbeda, sedangkan variabel numerik dipecah ke gradasi. Kanal shape hanya menerima kategori karena bentuk titik tidak memiliki urutan, dan ggplot2 menolak pemetaan nilai numerik ke shape dengan pesan error.
Satu kolom cukup dipetakan ke satu kanal, dan beberapa kanal boleh dipakai bersama untuk kolom yang berbeda. Apabila dua kanal membawa kolom yang sama, misalnya color dan shape keduanya membaca Species, grafiknya lebih mudah dibaca oleh pembaca layar (screen reader) dan tetap terbaca saat dicetak hitam putih.
Pengaturan tetap untuk kontras#
Pengaturan nilai tetap berguna ketika tidak ada kolom yang ingin dibawa ke grafik. Warna tunggal yang tenang membuat titik data menonjol di atas latar putih, dan transparansi mengungkap tumpukan titik pada area yang padat. Kedua pengaturan itu ditulis langsung pada geom, di luar aes().
p_tetap <- ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) +
geom_point(color = "#3a6b7e", size = 2, alpha = 0.75)
ggsave("spesies-tetap.svg", p_tetap, width = 5, height = 3.2)Grafik ini tidak memuat legenda karena tidak ada kolom yang dipetakan. Nilai alpha = 0.75 membuat titik yang tumpang-tindih terlihat lebih pekat, sehingga kepadanannya masih terbaca meskipun warnanya seragam. Kembali ke aturan dasarnya, nilai yang mengikuti data ditaruh di dalam aes(), sedangkan nilai yang ditetapkan sendiri ditaruh di luarnya.
Kesalahan umum#
Kesalahan pertama adalah menaruh nilai tetap di dalam aes(). Pemetaan aes(color = "biru") dibaca sebagai rujukan ke kolom bernama biru, dan karena kolom itu tidak ada, grafik gagal digambar dengan pesan error tentang objek yang tidak ditemukan. Nilai tetap ditaruh pada geom, yaitu geom_point(color = "biru"), agar diperlakukan sebagai warna sungguhan.
Kesalahan kedua adalah memetakan variabel numerik ke kanal yang tidak menerima numerik. Pemetaan aes(shape = Petal.Length) langsung ditolak ggplot2 karena bentuk titik tidak bermakna untuk nilai kontinu. Kanal seperti size atau alpha yang memang dirancang untuk nilai numerik digunakan sebagai gantinya.
Kesalahan ketiga adalah memetakan kategori dengan terlalu banyak tingkat ke kanal warna. Legenda dengan dua puluh warna berdekatan sulit dibedakan dan membuat grafiknya ramai. Apabila kelompoknya banyak, pemisahan dilakukan melalui facet atau dengan mengurutkannya ke dalam grafik terpisah.
Ringkasan#
- Kanal aestetik seperti
color,fill,size,shape, danalphamembawa kolom data ke properti visual melalui pemetaan di dalamaes(). - Legenda muncul otomatis dari pemetaan, dan skala bawaan menerjemahkan kategori ke warna berbeda serta nilai numerik ke gradasi.
colormewarnai titik dan garis, sedangkanfillmewarnai isian batang, kotak, dan area.- Nilai tetap yang berlaku seragam ditulis langsung pada geom, dan transparansi melalui
alphamembantu membaca titik yang bertumpuk.
Referensi#
- ggplot2: Elegant Graphics for Data Analysis — tidyverse — Dokumentasi resmi aestetik, skala, dan pengaturan warna pada setiap geom.
- R for Data Science, edisi ke-2 — Wickham, Çetinkaya-Rundel, Grolemund — Bab data visualisation membahas kanal aestetik dan pemilihan pemetaannya.