Sepanjang Section ini kita fokus membuat grafik yang tepat guna; chapter penutup ini membalik sudut pandangnya: belajar mengenali grafik yang menyampaikan hal lain daripada angkanya. Visualisasi yang membingungkan jarang lahir dari niat buruk — jauh lebih sering ia lahir dari pilihan yang tampak sepele: sumbu yang dipotong “supaya bedanya kelihatan”, palet warna yang menonjolkan satu batang, atau diagram lingkaran yang dipakai untuk data yang tidak cocok. Kita akan membedah lima pola yang paling sering muncul, menunjukkan akibatnya pada pembaca, lalu memperbaikinya satu per satu — memakai dataset Toko Kopi Kita yang sudah akrab.
Sumbu Terpotong: Memperbesar Perbedaan Kecil #
Pendapatan mingguan Februari Toko Kopi Kita adalah 11.000, 7.200, 8.800, dan 9.100 ribu rupiah. Grafik berikut menampilkan data yang sama dengan yang lain, tetapi sumbu tegaknya dipangkas mulai dari 7.000:
import matplotlib.pyplot as plt
minggu = [1, 2, 3, 4]
pendapatan_ribu = [11000, 7200, 8800, 9100]
fig, ax = plt.subplots(figsize=(6, 4))
ax.bar(minggu, pendapatan_ribu, color="#4c78a8")
ax.set_ylim(7000, 11500)
ax.set_title("Pendapatan mingguan Februari (ribu rupiah)")
ax.set_xlabel("Minggu ke-")
plt.show()Karena sumbu hanya menampilkan rentang 7.000 sampai 11.500, batang minggu pertama menjulang nyaris tiga kali tinggi batang kedua — pembaca yang tidak membaca angka pada sumbu akan menyimpulkan penurunan yang jauh lebih dramatis daripada kenyataan (11.000 berbanding 7.200 adalah 1,5 kali, bukan 3 kali). Versi yang jujur pada sumbu data positif selalu dimulai dari nol:
import matplotlib.pyplot as plt
minggu = [1, 2, 3, 4]
pendapatan_ribu = [11000, 7200, 8800, 9100]
fig, ax = plt.subplots(figsize=(6, 4))
ax.bar(minggu, pendapatan_ribu, color="#4c78a8")
ax.set_ylim(0, 11500)
ax.set_title("Pendapatan mingguan Februari (ribu rupiah)")
ax.set_xlabel("Minggu ke-")
plt.show()Pada sumbu mulai nol, keempat batang tampak berdekatan: minggu kedua memang turun sekitar sepertiga, lalu pulih. Perbedaan antara kedua grafik itu bukan pada datanya — keduanya memuat angka yang persis sama — melainkan pada kesan yang ditangkap mata dalam sepersekian detik pertama. Aturan praktisnya: untuk batang dan area (yang panjangnya dibaca sebagai nilai), mulai sumbu dari nol; pemangkasan sumbu hanya sahih untuk garis (line chart) ketika tujuannya menonjolkan perubahan kecil yang memang bermakna — dan selalu tuliskan rentang sumbunya secara jelas.
Skala Ganda: Dua Kurva, Dua Jembatan Emas #
Grafik dua sumbu (kiri dan kanan) memungkinkan dua kurva dengan satuan berbeda digambar bersama — penjualan di sumbu kiri, suhu udara di sumbu kanan. Jebakannya: pembaca hampir selalu membaca perpotongan dan jarak antar kurva sebagai hubungan, padahal posisi kedua kurva bisa digeser sesuka hati hanya dengan mengubah batas salah satu sumbu. Kurva yang “berpelukan erat” bisa dibuat saling menjauh tanpa mengubah satu angka pun. Untuk data bersatuan sama, cukup satu sumbu; untuk satuan berbeda yang memang perlu dibandingkan, lebih jujur membuat dua panel berdampingan dengan skala masing-masing yang terbaca jelas — atau menggambar ulang salah satu seri sebagai indeks (misalnya “minggu 1 = 100”) sehingga keduanya berbagi satu sumbu tanpa satuan.
Pie Chart yang Kewalahan #
Diagram lingkaran bekerja karena pembaca menilai besar sudut; ia menjadi beban ketika irisan menumpuk. Komposisi penjualan tujuh kategori menu berikut digambar sebagai pie:
import matplotlib.pyplot as plt
menu = ["kopi susu", "matcha latte", "americano", "teh tawar",
"cokelat panas", "es jeruk", "lainnya"]
jumlah = [374, 246, 209, 123, 88, 61, 51]
fig, ax = plt.subplots(figsize=(6, 6))
ax.pie(jumlah, labels=menu, autopct="%1.0f%%", startangle=90)
ax.set_title("Komposisi penjualan menu")
plt.show()Hasilnya berlimpah label yang bertumpuk di tepi lingkaran: kopi susu 32%, matcha latte 21%, americano 18%, teh tawar 11%, dan tiga irisan kecil 8%, 5%, serta 4% yang nyaris menyatu. Mata manusia baik menilai panjang dan posisi, tetapi lemah menilai sudut — apalagi membandingkan dua sudut yang berdekatan. Tiga irisan terkecil itu mustahil dibandingkan tanpa membaca persennya. Semakin banyak irisan, semakin cepat pie chart kehilangan fungsi; praktik yang dipakai luas adalah membatasi pie maksimal sekitar lima irisan, menggabungkan sisanya ke “lainnya”, atau beralih ke bar chart yang perbandingannya terbaca langsung. Efek 3D memperparah keadaan karena sudut irisan bergeser menurut perspektif — irisan belakang tampak lebih besar darinya yang depan.
Agregasi yang Menyembunyikan Kisah #
Kadang yang membuat grafik membingungkan bukan gambar di atasnya, melainkan tingkat agregasi datanya. Bandingkan ringkasan bulanan penjualan Januari dan Februari:
import pandas as pd
mingguan = pd.DataFrame({
"bulan": ["Januari"]*4 + ["Februari"]*4,
"minggu": [1, 2, 3, 4]*2,
"pendapatan_ribu": [9000, 9100, 8950, 9050, 11000, 7200, 8800, 9100],
})
ringkas = mingguan.groupby("bulan")["pendapatan_ribu"].agg(["sum", "mean", "std"])
print(ringkas.round(1).to_string())Output yang Dihasilkan:
sum mean std
bulan
Februari 36100 9025.0 1558.6
Januari 36100 9025.0 64.5Dua bulan itu tampak kembar sempurna: total sama (36.100), rata-rata sama (9.025). Padahal kisah mingguannya sangat berbeda — Januari stabil (simpangan baku 64,5), sementara Februari berayun lebar (1.558,6): promo minggu pertama melonjakkan pendapatan, lalu pekan berikutnya turun dalam sebelum memulihkan diri. Grafik batang dua-bulan dari angka agregat akan menampilkan dua batang setinggi sama persis dan menyembunyikan seluruh drama itu. Sebelum menerima sebuah grafik ringkas, selalu tanya: agregasi di tingkat apa, dan apa yang hilang karena dinaikkan satu tingkat?
Warna yang Berpihak #
Warna adalah saluran informasi tercepat dalam grafik — dan karena itu pula saluran yang paling mudah berpihak. Perhatikan grafik metode pembayaran berikut, di mana satu batang diberi warna menyala dan sisanya diredupkan:
import matplotlib.pyplot as plt
metode = ["QRIS", "tunai", "kartu debit", "e-wallet", "voucher"]
jumlah = [46, 28, 12, 9, 5]
fig, ax = plt.subplots(figsize=(6, 4))
ax.bar(metode, jumlah, color=["#d62728", "#bbbbbb", "#bbbbbb", "#bbbbbb", "#bbbbbb"])
ax.set_title("Metode pembayaran yang dipakai pelanggan")
plt.show()Tanpa satu kata pun, mata pembaca ditarik ke batang merah QRIS dan memperlakukan sisanya sebagai latar — padahal seluruh kategori di sini setara dan tidak ada alasan menonjolkan salah satunya. Warna menyala patut dipakai justru ketika ia membawa makna: menandai satu batang yang memang dibahas (“minggu promo”), membedakan dua kelompok, atau menyorot satu nilai yang menyimpang. Ketika semua nilai setara, perlakukan warna secara setara pula — satu warna netral untuk semuanya sudah mencukupi.
Daftar Periksa Sebelum Menerbitkan Grafik #
Lima pola di atas boleh diringkas menjadi daftar periksa singkat yang bisa dipakai pada grafik apa pun:
- Sumbu: apakah panjang batang/area setara dengan nilainya (mulai dari nol)? Apakah rentang garis ditulis jelas?
- Skala: apakah kedua kurva benar-benar perlu berbagi kanvas dengan dua sumbu? Bisakah digambar sebagai dua panel?
- Jenis: apakah jumlah kategori masih masuk akal untuk pie chart? Apakah 3D menambah makna atau hanya dekorasi?
- Agregasi: apakah tingkat ringkasnya masih menyimpan kisah yang penting bagi pembaca?
- Warna: apakah penonjolan warna mengikuti makna, atau sekadar selera dan kebiasaan?
Rangkuman #
- Sumbu terpotong menggelembungkan perbedaan kecil pada bar chart; sumbu data positif untuk batang sebaiknya dimulai dari nol, dan pemangkasan hanya untuk garis dengan rentang yang tertulis jelas.
- Dua sumbu dengan skala lepas membuat posisi dua kurva bisa digeser sesuka hati — perpotongan mereka bukan bukti hubungan; pertimbangkan dua panel atau indeks bersama.
- Pie chart melemah seiring bertambahnya irisan (mata lemah menilai sudut); batasi sekitar lima irisan atau pakai bar chart, dan hindari efek 3D.
- Agregasi bisa menyembunyikan kisah: dua bulan dengan total identik ternyata menyimpan dinamika mingguan yang bertolak belakang — periksa tingkat agregasi sebelum percaya ringkasan.
- Warna menyala hanya untuk makna; kategori yang setara pantas warna yang setara.
Dengan ini perangkat eksplorasi dan penyampaiannya sudah lengkap: kita bisa merumuskan pertanyaan, membersihkan data, menjelajahinya, dan menggambarkan temuan secara jujur. Temuan yang jujur pun perlu ditopang oleh sesuatu yang lebih kuat dari contoh: ukuran ketidakpastian dan pengujian yang sistematis. Itulah wilayah Section berikutnya, Statistika untuk Data Science .