Dua lapisan gramatika yang tersisa menentukan bagaimana grafik dipecah menjadi panel dan di ruang apa geometrinya digambar. Faset membagi satu grafik menjadi panel per kelompok dengan skala yang dibagikan, transformasi data yang dikerjakan sebelum digambar menentukan apa yang masuk ke setiap panel, dan sistem koordinat memutuskan saluran mana yang digunakan untuk membaca geometrinya. Topik ini membahas ketiganya dengan satu demo faset plotnine pada dataset jalur dan satu diagram transformasi batang menjadi pie.
Faset sebagai small multiple#
Satu panel yang berisi semua kelompok sering terlalu ramai untuk dibandingkan. Faset (facet) menjawab masalah itu dengan prinsip small multiple, yaitu satu grafik kecil per kelompok yang digambar dengan skala dan desain yang sama sehingga perbedaan antarpanel langsung terlihat. Dalam plotnine, facet_wrap menyusun panel untuk satu variabel secara berurutan, sedangkan facet_grid menyusun dua variabel pada baris dan kolom. Pada dataset nilai_ujian.csv, hubungan antara nilai matematika dan nilai literasi dapat diurai menjadi dua panel, satu per kelas.
import pandas as pd
from plotnine import aes, facet_wrap, geom_point, ggplot, labs
# lapisan data: tabel tidy
tabel = pd.read_csv("nilai_ujian.csv")
# satu grafik per kelas dengan skala yang dibagikan
grafik = (
ggplot(tabel, aes(x="nilai_matematika", y="nilai_literasi"))
+ geom_point()
+ facet_wrap("kelas")
+ labs(
title="Nilai literasi terhadap nilai matematika per kelas",
x="Nilai matematika",
y="Nilai literasi",
)
)
grafik.save("faset-kelas.svg", width=6, height=3.5, verbose=False)
print("berkas faset-kelas.svg tersimpan")berkas faset-kelas.svg tersimpanKedua panel pada gambar di atas menggunakan sumbu yang sama, sehingga pola kelas 7A dan 7B dapat dibandingkan tanpa penyesuaian mental. Apabila setiap panel diberi rentangnya sendiri, perbedaan kemiringan antarpanel tidak lagi dapat digunakan sebagai bukti. Faset bekerja paling baik ketika kelompok dibandingkan pada ukuran yang sama, dan itulah alasan skala bersama menjadi pilihan bawaannya.
Transformasi data sebelum digambar#
Faset mengatur kelompok mana yang digambar, sedangkan transformasi mengatur bentuknya. Dua tahap penerapan transformasi wajib dibedakan. Pertama, praproses data di luar grafik, misalnya menghitung rata-rata per kelas dengan pandas atau menghitung logaritma sebuah kolom sebelum tabel diteruskan ke grafik. Kedua, transformasi pada skala, misalnya skala logaritmik pada sumbu, yang dikerjakan di dalam gramatika tepat sebelum pemetaan ke piksel.
Keduanya menghasilkan kurva yang serupa, tetapi panduannya berbeda. Transformasi pada skala membuat penanda tick dan label sumbu tetap menggunakan satuan asli, sedangkan praproses manual membuat sumbu menggunakan satuan hasil transformasi kecuali labelnya juga diperbaiki secara manual. Karena itu, apabila library menyediakan transformasi pada skala, pilihan itu digunakan terlebih dahulu. Agregasi, sebaliknya, memang lebih tepat dikerjakan di luar grafik ketika ringkasannya juga digunakan untuk perhitungan lain, sebagaimana demo agregasi rata-rata per kelas.
Batasan faset juga perlu diingat ketika jumlah kelompoknya bertambah. facet_wrap menyusun panel sebanyak tingkat variabelnya, sehingga variabel dengan puluhan tingkat menghasilkan dinding panel yang sulit dibandingkan sekaligus. Pada kondisi itu, kelompok kecil dapat digabungkan terlebih dahulu di luar grafik, atau pertanyaannya dipecah menjadi beberapa grafik terpisah dengan satu kelompok fokus di setiap grafik.
Sistem koordinat: kartesian dan polar#
Sistem koordinat (coordinate system) menetapkan ruang tempat geometri diproyeksikan. Koordinat kartesian adalah pilihan bawaannya, dengan dua sumbu tegak lurus yang menampung posisi x dan y. Varian koordinat yang umum dijumpai mencakup koordinat terbalik (flipped) yang menukar kedua sumbu sehingga batang berdiri mendatar, koordinat log yang menerapkan transformasi pada arah tertentu, dan koordinat polar yang melengkungkan bidang gambar di sekitar satu titik pusat.
Koordinat polar menjelaskan pie secara gramatika. Diagram pie adalah batang bertumpuk yang digambar pada koordinat polar dengan jari-jari konstan, sehingga saluran bacaannya berubah dari panjang menjadi sudut. Diagram berikut memperlihatkan tiga batang yang sama diproyeksikan menjadi pie.
Nilai yang digambar persis sama, tetapi pembacaannya berubah. Panjang batang dapat ditaksir dengan teliti, sedangkan sudut dan area jauh lebih sulit dibandingkan oleh sistem penglihatan, sebagaimana diukur pada eksperimen persepsi grafik Cleveland dan McGill. Karena itu, pie dipilih ketika segmennya sedikit, dominasi antarkelompok menjadi pesan utama, atau datanya memang siklik seperti arah angin dan jam dalam satu hari. Di luar kasus itu, batang tetap menjadi pilihan yang lebih mudah dibaca.
Kesalahan umum#
Tiga kesalahan berikut paling sering dijumpai ketika faset dan koordinat dipraktikkan, dan masing-masing memiliki perbaikan yang sederhana.
- Panel faset diberi rentang bebas tanpa alasan. Perbandingan antarpanel menjadi tidak dapat dipercaya karena ukurannya berbeda, dan pola yang tampak curam bisa jadi hanyalah akibat rentang yang sempit. Kembalikan ke skala bersama, atau pisahkan menjadi grafik yang berdiri sendiri apabila rentangnya memang tidak sebanding.
- Pie berisi banyak segmen kecil. Sudut yang tipis sulit dibandingkan, dan legenda yang panjang memaksa pembaca bolak-balik antara warna dan label. Gunakan batang, atau gabungkan kelompok kecil menjadi satu segmen gabungan sebelum pie dibuat.
- Transformasi diterapkan dua kali. Menghitung logaritma kolom sekaligus mengaktifkan skala log menghasilkan kurva yang terlihat lurus padahal pertumbuhannya tidak konstan. Terapkan satu transformasi saja, lalu periksa label sumbunya sebelum grafik digunakan.
Ringkasan#
- Faset membagi grafik menjadi panel per kelompok dengan skala bersama, sehingga perbandingan antarpanel dapat dipercaya.
- Transformasi dapat dikerjakan sebagai praproses data atau pada skala, dan pilihan pada skala menjaga panduan tetap menggunakan satuan asli.
- Sistem koordinat menentukan saluran bacaan, dan polar mengubah panjang menjadi sudut, yang menjelaskan pie sebagai batang pada koordinat polar.
Referensi#
- ggplot2: Elegant Graphics for Data Analysis — Hadley Wickham — Bab faset dan sistem koordinat menjadi rujukan utama demo plotnine.
- The Grammar of Graphics — Springer — Definisi faset dan koordinat di dalam model formal gramatika.
- Graphical Perception: Theory, Experimentation, and Application to the Development of Graphical Methods — JSTOR — Eksperimen yang menempatkan akurasi sudut di bawah akurasi posisi dan panjang.
- Facet Plots in Python — Plotly — Padanan faset pada ekosistem plotly.