Rerata ART Lokadata

Salah satu tantangan terbesar saat membuat grafik adalah menyeimbangkan antara estetika dan fungsional. Contohnya, ketika kita ingin menggambarkan data dalam rupiah seperti yang dibuat teman-teman lokadata di atas. Walau menggelitik, saya tidak ingin berkomentar mengenai ketepatan metodenya. Sudah banyak yang mengingatkan sampai-sampai mereka harus merevisi keterangan terkait grafik ini:

Ada satu hal lagi yang sebetulnya layak diapresiasi yaitu inisiatif menggunakan lembaran rupiah sebagai komponen visual. Sayangnya, pilihan ini mengorbankan keterbacaan grafik dalam dua hal. Pertama, lembaran rupiah memiliki warna yang berbeda-beda. Warna adalah salah satu komponen visual yang kentara dalam sebuah grafik. Dengan menggunakan lembaran rupiah, warna justru menjadi distraksi. Coba tengok juga bagaimana lembaran rupiah dipotong menjadi beberapa bagian, lebar lembaran yang berbeda-beda tanpa makna khusus malah jadi membingungkan.

Kritik kedua awalnya saya kira tidak begitu signifikan. Ternyata, oh ternyata, coba bandingkan dengan grafik sederhana yang saya buat berikut:

#collapse-hide

import pandas as pd
import altair as alt

art_data = [
    ("Jakarta Selatan", "DKI Jakarta", 277, 631),
    ("Jakarta Barat", "DKI Jakarta", 182, 728),
    ("Kota Surabaya", "JAWA Timur", 180, 800),
    ("Jakarta Pusat", "DKI Jakarta", 167, 290),
    ("Tanggerang Selatan", "Banten", 154, 456),
    ("Kota Bekasi", "Jawa Barat", 153, 812),
    ("Kota Sukabumi", "Jawa Barat", 143, 94),
    ("Kota Bogor", "Jawa Barat", 140, 302),
    ("Kota Depok", "Jawa Barat", 135, 630),
    ("Kota Surakarta", "Jawa Tengah", 132, 153)
]
art_df = pd.DataFrame(
    data=art_data,
    columns=["Wilayah", "Provinsi", "Rerata_ori", "RT_ori"]
)
art_df["Rerata"] = art_df["Rerata_ori"].apply(lambda r: f"{r}rb")
art_df["Jumlah RT"] = art_df["RT_ori"].apply(lambda r: f"{r}rb")
bars = alt.Chart(art_df).mark_bar().encode(
    x=alt.X("Rerata_ori:Q", axis=None),
    y=alt.Y("Wilayah:N", sort="-x", axis=alt.Axis(title=None)),
    tooltip=[
        "Wilayah:N",
        "Provinsi:N",
        "Rerata:N",
        "Jumlah RT:N"
    ]
)
text = bars.mark_text(
    align="left",
    baseline="middle",
    dx=3
).encode(
    text="Rerata:N"
)
(bars + text).configure_view(strokeWidth = 0)

Perbandingannya jadi terdistorsi! Jakarta Selatan seharusnya jauh lebih besar dari Jakarta Barat dibanding yang ditampilkan lokadata. Apakah keuntungan estetis yang didapat dengan menggunakan lembar uang sebanding dengan kompromi memainkan skala? Bagi saya, tidak. Informasi utama yang mau disampaikan adalah perbandingan rerata antar kota, tidak bisa sembarang memperpendek bar demi estetika.

Jika ingin menggunakan lembaran uang, mungkin bisa dipertimbangkan untuk tidak menggunakan representasi bar chart. Ya pakai kumpulan uang saja, maka komponen visualnya adalah warna. Pertanyaan lanjutannya: apakah membandingkan jumlah uang antar gepok cukup mudah? Untuk yang matanya hijau sih, bisa jadi ya.

Segepok duit