Gagasan inti gramatika grafis

Data, estetika, geometri, dan statistik sebagai lapisan yang menjadikan grafik sebuah kalimat tersusun.

Daftar isi

Sebuah grafik yang baik tidak muncul dari daftar resep yang dihafal, melainkan dari keputusan yang disusun berlapis. Topik ini memperkenalkan gramatika grafis (grammar of graphics), mental model yang memandang grafik sebagai kalimat tersusun dari lapisan data, estetika, statistik, geometri, skala, faset, koordinat, dan panduan. Diagram alur dan tabel pada topik ini merangkum peran setiap lapisan, dan satu contoh agregasi dengan pandas menunjukkan cara lapisan statistik bekerja pada data nyata. Setelah membacanya, jenis grafik apa pun dapat diuraikan menjadi kalimat lapisan yang sama.

Lapisan yang menyusun sebuah grafik#

Ide gramatika grafis diperkenalkan oleh Wilkinson dalam buku The Grammar of Graphics, kemudian diwujudkan sebagai library oleh Wickham melalui ggplot2. Inti idenya sederhana, yaitu grafik statistik dapat dijelaskan dengan tata bahasa yang formal, sebagaimana kalimat dijelaskan dengan tata bahasa. Kalimat tersusun dari kata benda dan kata kerja, sedangkan grafik tersusun dari lapisan yang masing-masing menjawab satu pertanyaan. Lapisan-lapisan utamanya adalah sebagai berikut.

  • Data adalah tabel datar yang satu barisnya satu pengamatan dan satu kolomnya satu variabel, lazim disebut tidy data.
  • Estetika (aesthetic) memetakan kolom ke saluran visual seperti posisi, ukuran, dan warna.
  • Statistik (statistic) meringkas atau mengubah data sebelum digambar, misalnya rata-rata, jumlah, dan binning.
  • Geometri (geometry) menetapkan mark yang digambar, seperti titik, garis, dan batang.
  • Skala (scale) menempatkan nilai data ke posisi piksel.
  • Faset (facet) membagi satu grafik menjadi panel per kelompok.
  • Sistem koordinat (coordinate system) menetapkan ruang tempat geometri diproyeksikan.
  • Panduan (guide) menerjemahkan posisi kembali menjadi nilai melalui sumbu dan legenda.

Diagram berikut merangkum alur keputusan itu dari data sampai panduan. Empat lapisan pertama menentukan apa yang digambar, sedangkan skala dan panduan menentukan bagaimana hasilnya dibaca. Setiap lapisan menjawab pertanyaan yang berbeda, sehingga tabel sesudahnya dapat digunakan sebagai daftar periksa ketika sebuah grafik sedang disusun atau diperiksa ulang.

datatabel tidyestetikakolom ke saluranstatistikringkas dan binninggeometrimark digambarskalanilai ke pikselpanduansumbu dan legendasatu grafik adalah susunan keputusan, satu lapisan untuk satu keputusan
Alur susunan lapisan gramatika grafis dari data sampai panduan
LapisanPertanyaan yang dijawabContoh
DataApa yang digambar?berkas nilai_ujian.csv berisi satu baris per siswa
EstetikaKolom mana yang dipetakan ke saluran mana?x = kelas, y = nilai_matematika
StatistikBagaimana data diubah terlebih dahulu?rata-rata per kelas, jumlah kemunculan
GeometriMark apa yang digambar?titik, garis, batang
SkalaNilai data berada di piksel mana?linear, logaritmik, ordinal
FasetBagaimana panel dibagi per kelompok?satu panel per kelas
KoordinatRuang berapa yang digunakan?kartesian, polar
PanduanBagaimana pembaca membaca kembali?sumbu, legenda

Dari menu jenis grafik ke kalimat lapisan#

Banyak alat menyajikan visualisasi sebagai menu jenis grafik, misalnya diagram batang, garis, dan pie. Menu semacam itu nyaman untuk pilihan yang sudah lazim, tetapi menyembunyikan mesin yang menghasilkannya. Gramatika grafis mengganti menu tersebut dengan kosakata lapisan, sehingga jenis grafik berhenti menjadi kategori dan mulai menjadi kombinasi. Diagram batang adalah geometri batang yang diterapkan pada hasil agregasi, diagram garis adalah geometri garis pada pasangan waktu dan nilai, sedangkan pie adalah geometri batang yang digambar pada koordinat polar.

Bentuk kalimatnya pun dapat dirumuskan. Spesifikasi satu grafik rata-rata nilai per kelas berbunyi sebagai berikut: untuk data ini, petakan kolom kelas ke posisi horizontal, ringkas kolom nilai dengan rata-rata, lalu gambar sebagai batang. Menambah satu klausa, yaitu bagi panel per kelas, menghasilkan faset tanpa mengubah klausa lainnya. Perubahan seperti ini mahal pada pendekatan resep dan murah pada pendekatan lapisan karena setiap klausa berdiri sendiri.

Pendekatan lapisan juga mempermudah perpindahan antaralat. Setelah kosakatanya dikuasai, dokumentasi plotnine dan plotly express dapat dibaca seperti kamus yang menerjemahkan lapisan yang sama ke sintaks yang berbeda. Mental model ini digunakan sepanjang jalur, mulai dari penataan skala sampai pilihan koordinat.

Lapisan statistik dalam contoh nyata#

Lapisan statistik adalah keputusan yang paling sering tersembunyi. Banyak alat menggambar langsung dari tabel mentah dan membiarkan pembaca menebak ringkasannya, sedangkan gramatika menyatakan transformasi itu secara eksplisit sebagai satu lapisan. Contoh berikut menggunakan dataset kanonik jalur, berkas nilai_ujian.csv yang berisi 24 baris nilai ujian siswa dari kelas 7A dan 7B. Pertanyaannya sederhana, yaitu bagaimana rata-rata nilai per kelas, dan pertanyaan itu persis pekerjaan lapisan statistik yang belum digambar.

python agregasi-kelas.py
import pandas as pd

# lapisan data: tabel tidy, satu baris per siswa, satu kolom per variabel
tabel = pd.read_csv("nilai_ujian.csv")

# lapisan statistik: agregasi rata-rata per kelas
rata = (
    tabel.groupby("kelas", as_index=False)[
        ["nilai_matematika", "nilai_fisika", "nilai_literasi", "hadir_persen"]
    ]
    .mean()
    .round(2)
)

print(rata.to_string(index=False))
text Keluaran
kelas  nilai_matematika  nilai_fisika  nilai_literasi  hadir_persen
   7A             81.42         79.17           79.33         93.58
   7B             77.58         75.58           74.75         91.75

Tabel keluaran itulah hasil lapisan statistik yang nantinya dikirim ke lapisan geometri. Apabila tabel mentah yang langsung digambar, 24 titik akan muncul dan menampilkan nilai tiap siswa, bukan ringkasan kelasnya. Keduanya sah sebagai grafik, tetapi keduanya menjawab pertanyaan yang berbeda, dan perbedaan itu terletak pada lapisan statistik sebelum satu piksel pun digambar.

Kesalahan umum#

Tiga kesalahan berikut sering muncul ketika lapisan gramatika baru dipelajari, dan masing-masing memiliki perbaikan yang jelas.

  • Data belum tidy. Kolom yang menumpuk beberapa variabel membuat pemetaan estetika gagal atau bahkan menyesatkan, misalnya satu kolom per mata pelajaran yang tidak dapat dipetakan ke satu saluran. Perbaikannya adalah menata ulang tabel terlebih dahulu sehingga satu baris mewakili satu pengamatan dan satu kolom mewakili satu variabel.
  • Jenis grafik dipilih sebelum pertanyaannya. Hasilnya sering berupa grafik yang menarik tetapi menjawab hal yang tidak sedang ditanyakan, sehingga pembaca menghabiskan waktu untuk grafik yang tidak membawa pesan. Mulailah dari kalimat lapisan, lalu biarkan jenis grafik mengikuti klausa terakhirnya.
  • Statistik dianggap bagian dari data mentah. Rata-rata atau jumlah yang dihitung secara diam-diam oleh alat kadang diperlakukan seperti angka observasi, padahal angka tersebut merupakan hasil estimasi yang layak dinyatakan. Nyatakan transformasinya secara eksplisit, baik di dalam kode maupun pada label grafik.

Ringkasan#

  • Grafik tersusun dari lapisan data, estetika, statistik, geometri, skala, faset, koordinat, dan panduan, dan setiap lapisan menjawab satu pertanyaan.
  • Jenis grafik adalah kombinasi lapisan, bukan kategori yang dihafal, sehingga spesifikasi grafik dibaca dan disunting seperti kalimat.
  • Lapisan statistik merupakan keputusan eksplisit, dan agregasi rata-rata per kelas memperlihatkan keputusan itu sebelum grafik digambar.

Referensi#