Grafik yang benar secara teknis tetap dapat gagal menyampaikan pesan apabila pembaca harus mencari sendiri temuan di dalamnya. Topik ini membahas cara menyusun grafik yang menceritakan satu pesan, melalui judul yang menyatakan temuan dan anotasi yang menyorot titik penting. Pada bagian akhir, dua versi grafik dari data yang sama dibandingkan, yaitu versi polos dan versi beranotasi, sehingga perbedaan penyampaiannya terlihat langsung.
Satu pesan untuk satu grafik#
Satu grafik menyampaikan satu pesan, dan pesan itu ditentukan sebelum grafik digambar. Data peminjaman perpustakaan selama dua belas bulan memuat beberapa kemungkinan pesan, misalnya puncak peminjaman menjelang ujian, penurunan pada masa liburan, atau naik-turunnya peminjaman antarsemester. Grafik yang memuat semua pesan sekaligus menyulitkan pembaca, sedangkan grafik yang memilih satu pesan memberi arah pembacaan yang jelas.
Penentuan pesan berawal dari tujuan laporan. Laporan untuk pengelola perpustakaan mungkin menonjolkan puncak peminjaman sebagai dasar pengadaan buku, sedangkan laporan untuk guru mungkin menonjolkan masa liburan sebagai waktu pemeliharaan koleksi. Pesan yang berbeda dapat bersumber dari data yang sama, tetapi judul, anotasi, dan rentang sumbunya menyesuaikan pesan tersebut. Apabila dua pesan sama pentingnya, buat dua grafik daripada memaksakan keduanya ke dalam satu gambar.
Judul yang menyatakan temuan#
Judul grafik terbagi menjadi dua jenis, yaitu judul deskriptif yang menyebut isi data dan judul temuan yang menyatakan hasil pembacaan data. Judul deskriptif seperti “Jumlah peminjaman buku per bulan” hanya memberitahu topiknya, sedangkan judul temuan seperti “Peminjaman buku mencapai puncak pada Mei” memberitahu hasilnya. Pembaca yang melihat judul temuan langsung memperoleh kesimpulannya, lalu grafik menjadi bukti di bawahnya.
Perubahan judul berikut memperlihatkan polanya pada tiga contoh.
- “Jumlah peminjaman buku per bulan” menjadi “Peminjaman buku mencapai puncak pada Mei menjelang ujian”.
- “Nilai rata-rata ujian per kelas” menjadi “Kelas 7B mencatat nilai rata-rata tertinggi”.
- “Grafik 1” diganti dengan kalimat temuan, karena nomor urut tidak memberi informasi apa pun.
Judul temuan tetap terikat pada data yang ditampilkan. Pernyataan sebab-akibat seperti “peminjaman naik karena program baru” membutuhkan bukti tambahan di luar grafik, sehingga judul dibatasi pada apa yang benar-benar tampak, misalnya besaran, waktu, dan kelompoknya. Rincian teknis seperti satuan dan cakupan periode tetap hidup di label sumbu, sehingga judul boleh fokus pada temuan.
Menyorot temuan dengan anotasi#
Anotasi menyorot satu elemen grafik dengan teks dan panah penunjuk, sehingga mata pembaca langsung menuju titik yang mendukung judul. Fungsi ax.annotate() menerima teks anotasinya, koordinat titik sasaran pada parameter xy, dan posisi teks pada parameter xytext, sementara arrowprops mengatur panahnya. Alternatifnya berupa ax.text() yang menulis teks tanpa panah untuk penandaan yang lebih ringan.
Berkas tanpa-anotasi.py berikut menggambar versi polos sebagai titik tolak. Judulnya masih deskriptif, tidak ada penanda pada titik puncak, dan pembaca harus menelusuri sendiri garisnya untuk menemukan bulan tertinggi.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun",
"Jul", "Agu", "Sep", "Okt", "Nov", "Des"]
peminjaman = [246, 262, 281, 318, 402, 175,
142, 228, 295, 312, 386, 190]
fig, ax = plt.subplots()
ax.plot(bulan, peminjaman, marker="o")
ax.set_xlabel("Bulan")
ax.set_ylabel("Jumlah peminjaman")
ax.set_title("Jumlah peminjaman buku per bulan")
plt.savefig("cerita-polos.png", dpi=120)
print("Grafik tersimpan: cerita-polos.png")Grafik tersimpan: cerita-polos.png
Sebelum dan sesudah anotasi#
Berkas dengan-anotasi.py berikut menggambar data yang sama dengan tiga perubahan. Judulnya kini menyatakan temuan, anotasi bertanda panah menyorot puncak Mei, dan rentang sumbu vertikal diberi ruang atas hingga 480 agar teks anotasinya tidak terpotong. Perubahan ketiga penting karena teks anotasi membutuhkan ruang di atas titik tertinggi data.
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
bulan = ["Jan", "Feb", "Mar", "Apr", "Mei", "Jun",
"Jul", "Agu", "Sep", "Okt", "Nov", "Des"]
peminjaman = [246, 262, 281, 318, 402, 175,
142, 228, 295, 312, 386, 190]
fig, ax = plt.subplots()
ax.plot(bulan, peminjaman, marker="o")
ax.set_ylim(0, 480)
ax.set_xlabel("Bulan")
ax.set_ylabel("Jumlah peminjaman")
ax.set_title("Peminjaman buku mencapai puncak pada Mei menjelang ujian")
ax.annotate("Puncak Mei: 402 peminjaman",
xy=(4, 402), xytext=(6.2, 440),
arrowprops={"arrowstyle": "->", "color": "dimgray"})
plt.savefig("cerita-beranotasi.png", dpi=120)
print("Grafik tersimpan: cerita-beranotasi.png")Grafik tersimpan: cerita-beranotasi.png
Perbandingan kedua versi memperlihatkan peran setiap elemen. Versi polos menyajikan data dengan benar, tetapi pesannya ditanggung pembaca, sedangkan versi beranotasi menyampaikan pesan, buktinya, dan arah pembacaan dalam satu pandangan. Anotasi Puncak Mei berfungsi ganda, yaitu menyebut angkanya sekaligus menunjuk letaknya pada garis. Keduanya tetap jujur karena menampilkan data yang sama tanpa mengubah nilainya, dan perbedaan rentang sumbunya hanya memberi ruang untuk teks anotasi.
Pola sebelum dan sesudah ini dapat digunakan ulang untuk semua jenis grafik. Tulis pesannya dalam satu kalimat, jadikan kalimat itu judul, lalu pilih satu titik data yang paling kuat mendukungnya sebagai sasaran anotasi. Sisa elemen grafik berfungsi sebagai konteks yang tidak perlu ditandai.
Kesalahan umum#
Kesalahan berikut sering muncul saat grafik disiapkan untuk dipresentasikan atau dilaporkan, beserta penyebab dan perbaikannya.
- Judul hanya berupa nomor atau nama berkas, misalnya “Grafik 1”. Pembaca tidak menerima pesan apa pun sebelum menelusuri grafiknya. Perbaikannya, gunakan judul temuan yang menyebut besaran serta waktunya.
- Anotasi ditambahkan pada setiap titik data. Grafik menjadi ramai dan penekanannya hilang. Perbaikannya, batasi anotasi pada satu atau dua titik yang paling mendukung judul.
- Judul temuan melebihi isi data, misalnya menyebut penyebab kenaikan yang tidak tampak pada grafik. Kesimpulan seperti itu membutuhkan bukti di luar gambar. Perbaikannya, batasi judul pada besaran, waktu, dan kelompok yang benar-benar ditampilkan.
Ringkasan#
- Satu grafik menyampaikan satu pesan yang ditentukan sebelum grafik digambar.
- Judul menyatakan temuan beserta lokasi dan angkanya, bukan nama variabel atau nomor gambar.
ax.annotate()menyorot satu titik penting dengan teks dan panah, dan jumlah anotasinya dibatasi pada elemen terpenting.- Judul dan anotasi dibatasi pada apa yang benar-benar tampak dalam data.
Referensi#
- Matplotlib Documentation — Matplotlib
— Dokumentasi resmi matplotlib yang mencakup fungsi
annotate,text, dan pengaturan teks pada gambar. - The matplotlib Gallery — Matplotlib — Galeri contoh yang memuat pola anotasi yang dapat langsung ditiru untuk berbagai jenis grafik.