Grafik adalah objek yang telah menjadi sahabat saya selama membaca buku teks dan jurnal di bangku kuliah. Terkadang datang giliran saya yang harus menyajikan grafik buatan saya sendiri. Entah dalam sesi perkuliahan atau sidang.

Pernah suatu hari saya kena semprot dosen karena lupa mencantumkan satuan dalam grafik yang saya buat. Memang, luputnya keterangan satuan dalam grafik adalah sebuah dosa besar di fisika dan astronomi. Pengalaman kena semprot tersebut begitu berkesan hingga saya tidak pernah lupa lagi mencantumkan satuan meskipun kini grafik yang saya sajikan bukan lagi tentang fisika dan astronomi. Sebisa mungkin saya menuliskan satuan meskipun kesannya agak dipaksakan, seperti cancelation/order.

Dalam presentasi bisnis, adanya keterangan satuan tetap membantu dalam menyampaikan ide. Namun itu masih kurang cukup untuk membuat peserta rapat langsung memahami apa yang ingin saya sampaikan. Kerap terjadi peserta rapat lebih sibuk bertanya tentang detail grafik ketimbang mendengarkan penjelasan saya sendiri. Di sini saya merasa ada yang kurang tepat dari grafik yang saya buat.

Setiap minggunya saya selalu coba perbaiki, modifikasi, dan bereksperimen dengan grafik yang saya buat. Tapi tetap saja rasanya masih kurang greget. Saya tidak tahu di mana akar masalahnya sampai saya menemukan buku ini.

make visualization more efficient with Storytelling with Data

Salah satu proses yang perlu dilakukan seorang data analis adalah exploratory dan explanatory. Exploratory adalah ketika seorang data analis melihat-lihat fakta apa saja yang menarik untuk digali, sedangkan explanatory adalah ketika data analis menentukan fokus cerita apa yang ingin disampaikan dan bagaimana menekankan poin tersebut. Apa yang dijelaskan dalam Storytelling with Data adalah bagian dari proses explanatory di mana keluarannya adalah cerita dari data yang sudah dieksplorasi, baik dalam bentuk verbal ataupun visual. Di sini saya akan fokus membahas bagaimana membuat visualisasi data yang efektif dalam membantu kita bercerita.

Visualisasi data seringnya disajikan untuk rekan kerja dari divisi lain yang bisa jadi awam dengan angka, atau tidak punya banyak waktu untuk menelaah sebuah grafik yang terlalu rumit. Nah, buku ini menjelaskan dengan lugas bagaimana caranya agar informasi yang ingin kita ̶s̶a̶m̶p̶a̶i̶k̶a̶n̶ tekankan bisa langsung diterima oleh peserta tanpa perlu mereka cerna lagi dengan susah payah.

Dalam klasifikasi memori manusia, ternyata ada satu memori yang bisa menangkap informasi dengan cepat tanpa perlu mencerna terlebih dahulu, yaitu iconic memory. Iconic memory ini terbentuk selama masa evolusi sehingga manusia bisa awas dengan kehadiran predator dan mampu bertindak dengan cepat dan efisien. Dari sini Knaflic memperkenalkan konsep preattentive atributes; atribut yang bisa tertangkap oleh manusia sebelum atribut tersebut diperhatikan dengan saksama. Contoh dari preattentive attributes bisa dilihat dari gambar berikut.

Sumber: https://www.interaction-design.org/literature/article/preattentive-visual-properties-and-how-to-use-them-in-information-visualization

Dari grafik di atas kita dapat dengan mudah membedakan mana kotak yang paling besar, mana bentuk yang berbeda, mana garis yang paling terbal, dst. Yep, kunci dari memanfaatkan preattentive attributes adalah buat menonjol poin yang ingin kita sampaikan dalam grafik.

Pemanfaatan preattentive attributes bisa dimulai dari pemilihan warna latar. Waktu di bangku sekolah saya pernah didoktrin supaya tidak membuat slide presentasi ‘hitam di atas putih’. Ternyata dalam Storytelling with Data disebutkan bahwa pola pikir ini kurang tepat. Warna latar yang putih secara default bukan berarti harus diisi dan dipenuhi oleh elemen yang tidak diperlukan. Buatlah visualisasi seminimalis mungkin mulai dari warna latar hingga atribut yang melengkapinya.

Bahkan, sebetulnya penonton juga perlu diberi slide kosong di antara presentasi sebagai jeda karena akan melelahkan sekali ketika terus menerus dibombardir informasi tanpa rehat. Slide kosong yang disarankan pun juga berwarna putih, bukan warna lain. Bagaimana jika diberi slide kosong tapi warnanya biru atau kuning? Meskipun slide tersebut kosong, tetap saja otak perlu bekerja untuk mencerna warna apa yang sedang ditampilkan.

Pemanfaatan preattentive attributes selanjutnya adalah dengan menonjolkan kontras. Seperti yang telah disebutkan sebelumnya, menekankan informasi dalam grafik adalah bagian dari proses explanatory. Pada tahap ini seorang data analis harus sudah tahu informasi apa yang ingin ditekankan dalam presentasi dan grafik apa yang paling cocok sehingga tidak perlu ragu untuk mengesampingkan informasi yang kurang relevan.

Di sini saya ingin mengambil contoh visualisasi grafik batang atau bar plot. Terkadang bar plot ini dihindari karena dianggap terlalu umum dan sederhana sehingga data analis gemar eksperimen dengan bentuk grafik lain. Padahal seperti yang sudah saya sebutkan di atas, kunci dari visualisasi adalah buat seminimalis dan seefektif mungkin dan bar plot memenuhi kriteria ini. Bar plot hanya perlu disiasati penerapan preattentive attribute-nya supaya bisa lebih efektif dan menarik.

Mari ambil contoh kasus data The Movies Dataset yang dapat diakses dari Kaggle.com. Data ini terdiri dari 24 kolom dan 45466 baris. Beberapa nilai masih tersimpan dalam bentuk JSON sehingga perlu diekstrak terlebih dahulu. Di samping itu saya juga tidak ikut sertakan film-film yang menggunakan bahasa Inggris sebagai penutur karena jumlahnya jauh lebih banyak dibandingkan film berbahasa asing lainnya. Visualisasi dibuat setelah proses data cleaning tersebut selesai. Kali ini saya ingin visualisasi saya bisa menjelaskan seberapa besar kontribusi negara-negara Asia dalam perfilman dunia.

Data olahan yang terdiri dari negara produksi dengan jumlah film yang dihasilkan saya simpan dalam tabel prod_cntry dan visualisasi saya buat dengan modul Seaborn dan Matplotlib.

prod_cntry
plt.figure(figsize=(8,8))
plt.title('Seberapa besar kontribusi negara-negara Asia dalam perfilman dunia?',fontsize=13,fontweight='bold')
sns.barplot(x='count',y='country',data=prod_cntry,palette='gist_stern')
Grafik 1. Percobaan pertama tanpa memanfaatkan preattentive attributes

Sekilas grafik di atas memang terlihat menarik. Namun butuh usaha lebih untuk mencari ada di mana posisi negara-negara Asia tersebut. Apabila grafik di atas disajikan dalam presentasi, sudah pasti peserta akan sibuk mencari nama-nama negara Asia yang ada dan tidak lagi fokus mendengarkan penjelasan presenter.

Oleh karena itulah dibutuhkan kontras antara poin yang ingin disampaikan dan yang tidak. Sebagai perbaikan grafik di atas, saya berikan warna biru untuk bar yang mewakili negara-negara Asia dan sisanya saya berikan warna abu-abu seperti berikut.

values = prod_cntry['count']
tipe = prod_cntry['country']
asia = [’Japan’,’India’,’South Korea’,’Hong Kong’,’China’]
clrs = []
for i in tipe:
    if i in asia:
        col = 'cornflowerblue'
    else:
        col = 'silver'
    clrs.append(col)
plt.figure(figsize=(9,6))
plt.title('Seberapa besar kontribusi negara-negara Asia dalam perfilman dunia?',fontsize=13,fontweight='bold')
sns.barplot(x=values,y=tipe,palette=clrs)
Grafik 2. Pemberian kontras warna pada negara-negara Asia dan non-Asia

Kini tanpa perlu menilik bar satu persatu kita bisa langsung tahu ada di posisi mana negara Asia berada. Meski sudah sangat tercerahkan, masih banyak kekacauan yang ada di Grafik 2. Kalau kata Marie Kondo cs, Grafik 2 ini masih visually cluttered sehingga langkah selanjutnya yang harus dilakukan adalah bersih-bersih.

Perlu diingat bahwa presentasi bisnis tidak sama dengan presentasi ilmiah sehingga tidak apa untuk menghilangkan hal yang sifatnya krusial dalam presentasi ilmiah seperti sumbu x dan sumbu y. Juga jangan ragu untuk menghilangkan border dari grafik karena elemen ini juga turut menyumbang kekacauan visual.

plt.figure(figsize=(9,6))
plt.title('Seberapa besar kontribusi negara-negara Asia dalam perfilman dunia?',fontsize=13,fontweight='bold')
sns.barplot(x=values,y=tipe,palette=clrs)
plt.xticks([])
plt.box(on=None) 
plt.ylabel('')    
plt.xlabel('')
Grafik 3. Visualisasi setelah dibersikan dari border, sumbu X, dan sumbu Y

Grafik di atas sudah terlihat lebih ringan dan ringan dipandang ya. Namun hilangnya keterangan sumbu X menyebabkan kita kehilangan informasi tentang nilai eksak dari poin yang disoroti. Masalah seperti ini bisa diatasi dengan memberikan anotasi pada bar. Selain itu, tidak perlu ragu untuk menghilangkan nama negara lain yang tidak dibahas dan judul grafik bisa dibuat sama ukurannya dengan label bar.

val_asia = [values[1],values[5],values[7],values[8],values[12]]
plt.figure(figsize=(9,6))
ax = sns.barplot(x=values,y=tipe,palette=clrs)
plt.title(’Seberapa besar kontribusi negara-negara Asia dalam perfilman dunia?’,fontsize=12)
plt.xticks([])
ax.yaxis.set_ticklabels([’’,tipe.iloc[1],’’,’’,’’,tipe.iloc[5],’’,tipe.iloc[7],tipe.iloc[8],’’,’’,’’,tipe.iloc[12]])
ax.tick_params(axis=’both’, which= 'both’, length=0)
plt.box(on=None) 
plt.ylabel(’’)    
plt.xlabel(’’)
for p in ax.patches:
    width = p.get_width()
    if width in val_asia:
        plt.text(5+p.get_width(), p.get_y()+0.5*p.get_height(),
                 '{:1.0f}'.format(width),
                 ha='left', va='center')
Grafik 4. Visualisasi yang sudah dibersihkan secara paripurna

Kini, mari bandingkan visualisasi pertama dan terakhir. Mana yang lebih efektif dalam menyampaikan pesan? 🙂

Sebelum dan sesudah menerapkan konsep preattentive attribute dalam grafik

Banyak hal yang harus dikerjakan seorang data analis sebelum tiba di tahap explanatory, mulai dari data extraction, data cleaning, data exploratory, dan analisis. Umumnya 80% waktu lebih banyak dihabiskan untuk membersihkan data sementara tenggat waktu pengerjaan tidak panjang. Sebagai imbasnya waktu mengeksplorasi data dan analisis tinggal sedikit sehingga tidak maksimal dalam melakukan explanatory. Oleh karena itu dengan memiliki pengetahuan mumpuni tentang bagaimana melakukan explanatory yang efektif, maka proses exploratory dan analisis yang dilalui data analis menjadi lebih efisien.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s