Data Visualization With Python Matplotlib For Beginner
Data Visualization With Python Matplotlib For Beginner
Dalam menganalisa data, sering kali menggunakan visualisasi data untuk memahami karakteristik
maupun trend di dalam data yang dimiliki.
Salah satu library di python yang biasa digunakan untuk keperluan visualisasi data adalah matplotlib.
Dalam modul ini, akan dijelaskan beberapa hal yang dapat dilakukan dengan matplotlib. Di antaranya:
Pengenalan Dataset
Berbeda seperti hari-hari sebelumnya, hari ini aku berkesempatan hadir dalam rapat bersama Andra.
“Halo rekan-rekan semua, selamat datang di meeting ini untuk melihat performa bisnis kita. Aksara, tolong
perlihatkan isi file raw data penjualan yang saya share tadi. Nanti akan saya jelaskan isinya,” pinta Andra
membuka rapat pertama yang kuikuti sejak berada di divisi baru ini.
Lalu aku jalankan dengan menekan tombol , data pun tercetak di console:
Di sini terlihat bahwa kita punya 5000 baris data, dan terdiri dari 9 kolom.
Note:
Jika pada bagian terbawah di console mulai dari sesi praktik ini dan kedepannya terdapat warning seperti
berikut:
Penjelasan Dataset
“Berikut ini tampilan data transaksi supermarket kita sepanjang tahun 2019, lengkap dengan masing-masing
penjelasannya untuk tiap kolom. Bisa kita simak bersama untuk pertimbangan strategi kita ke depan,” jelas
Andra.
order_id : ID dari order/transaksi, 1 transaksi bisa terdiri dari beberapa produk, tetapi hanya
dilakukan oleh 1 customer
order_date : tanggal terjadinya transaksi
customer_id : ID dari pembeli, bisa jadi dalam satu hari, 1 customer melakukan transaksi beberapa
kali
city : kota tempat toko terjadinya transaksi
province : provinsi (berdasarkan city)
product_id : ID dari suatu product yang dibeli
brand : brand/merk dari product. Suatu product yang sama pasti memiliki brand yang sama
quantity : Kuantitas/banyaknya product yang dibeli
item_price : Harga dari 1 product (dalam Rupiah). Suatu product yang sama, bisa jadi memiliki harga
yang berbeda saat dibeli
“Jika penjelasan data barusan sudah dapat dicerna, saya akan menampilkan Gross Merchandise Value atau
total uang yang dibayarkan customer. Aksara tolong tampilkan grafiknya pada layar.”
“Oke.” Aku pun beranjak dari tempat duduk dan mengganti dokumen.
Salah satu peserta rapat mengacungkan tangan, serta-merta aku melirik padanya begitu juga Andra,
“Emangnya di data kita tadi ada info GMV ya? Gimana mau bikin grafik kalau kolomnya tidak ada?”
Aku mendapati Andra tersenyum sebelum menjawab, “Makanya, sebelum membuat grafiknya, kita pastikan
dulu bahwa datanya sudah siap. Kita bisa memanfaatkan library pandas dan numpy untuk mengolah data. Bisa
bantu jelaskan, Aksara?”
“Untuk membuat grafik GMV bulanan, bayangan kita tentu adalah sebuah line chart dengan sumbu-x berupa
bulan, dan sumbu-y adalah total GMV di bulan tersebut. Pasti bisa,” lanjutku.
Aku tahu kalau aku dan Andra belum punya kolom bulan, baru ada order_date yang merupakan tanggal
transaksi. Tapi, tidak masalah. Aku bisa membuat kolom baru order_month dengan kode seperti ini:
apply & lambda biasa digunakan untuk membuat kolom baru, berdasarkan suatu kolom lain yang
sudah ada (misal .apply(lambda x: x*2) berarti setiap input x di dalam kolom, akan diubah menjadi
x*2). Dalam hal ini kolom yang sudah ada adalah dataset['order_date'], lalu tiap nilai di dalamnya kita
proses agar menjadi month-nya saja
Function datetime.datetime.strptime digunakan untuk mengubah date/time dalam
bentuk string menjadi tipe data datetime.
Function strftime digunakan untuk mengubah format suatu data bertipe datetime, dalam hal ini diubah
menjadi '%Y-%m', yang berarti output-nya adalah waktu dengan bentuk YYYY-MM atau tahun dan
bulan saja, tanggalnya sudah tidak ada.
Jika berhasil dijalankan maka akan diperoleh tampilan 5 data teratas sebagai berikut:
Selanjutnya, bagaimana dengan GMV? Definisikan GMV adalah perkalian setiap entri di kolom item_price
dan kolom quantity. Bisa saja menggunakan fungsi apply & lambda seperti tadi, tetapi ada cara yang lebih
mudah yaitu dengan mengalikan kedua kolom yang disebutkan secara langsung.
Code:
Jalankan kode di atas melalui tombol maka akan diperoleh hasil berikut di console:
Sekarang isi dataframe menjadi seperti ini, sudah ada kolom order_month dan gmv.
JAWABAN
import pandas as pd
import datetime
dataset = pd.read_csv('https://storage.googleapis.com/dqlab-dataset/retail_raw_reduced.csv')
dataset['gmv'] = dataset['item_price']*dataset['quantity']
print(dataset.head())
Quiz
maka akan muncul kolom baru bernama ‘new_column’ yang isinya adalah ...
JAWABAN
‘x*2’
Hasil rapat tadi mendorong divisiku untuk menampilkan plot grafik data agar lebih nyaman dilihat secara
visual. Aku ingin mencoba untuk mengeksekusinya.
“Aksara, seperti yang kamu dengar juga tadi, kita perlu menampilkan datanya dalam bentuk grafik,” ujar
Andra seakan tahu isi hatiku.
“Serahkan saja padaku, Ndra! Aku akan coba bikin plot grafiknya,” aku mengajukan diri.
“Baik. Kamu bisa minta tolong Senja dulu untuk menjelaskan jika ada kendala, karena hari ini saya tidak
sepenuhnya di kantor.”
“Oke.” Dalam hati aku bersorak girang, sudah kangen sekali dengan Senja! Tapi sebelum itu, aku mencoba
untuk mengerjakan sendiri dulu beberapa susunan kode grafiknya menggunakan matplotlib:
JAWABAN
import pandas as pd
import datetime
dataset = pd.read_csv('https://storage.googleapis.com/dqlab-dataset/retail_raw_reduced.csv')
dataset['gmv'] = dataset['item_price']*dataset['quantity']
monthly_amount = dataset.groupby('order_month')['gmv'].sum().reset_index()
print(monthly_amount)
Selanjutnya mari menggunakan matplotlib. Untuk menggunakan matplotlib, bisa memanggil library-nya
seperti ini:
Cara standar untuk menggunakan matplotlib yaitu dengan memanggil function plt.plot lalu definisikan nilai di
sumbu-x dan sumbu-y. Dalam hal ini, definisikan kolom order_month di sumbu-x (parameter pertama), dan
kolom gmv di sumbu-y (parameter kedua). Setelah selesai mendefinisikan komponen chart-nya, lalu panggil
plt.show() untuk menampilkan grafiknya.
Jika berhasil dijalankan dengan menekan diperoleh tampilan line chart-nya seperti berikut ini:
JAWABAN
import pandas as pd
import datetime
dataset = pd.read_csv('https://storage.googleapis.com/dqlab-dataset/retail_raw_reduced.csv')
dataset['gmv'] = dataset['item_price']*dataset['quantity']
monthly_amount = dataset.groupby('order_month')['gmv'].sum().reset_index()
plt.plot(monthly_amount['order_month'],monthly_amount['gmv'])
plt.show()
Dengan pendekatan lain, dimungkinkan juga melakukan visualisasi dengan matplotlib tanpa membuat variabel
baru.
Dengan begini, sudah bisa lihat GMV dari bulan ke bulan. Selesai deh line chart nya :)
JAWABAN
import pandas as pd
import datetime
dataset = pd.read_csv('https://storage.googleapis.com/dqlab-dataset/retail_raw_reduced.csv')
dataset['gmv'] = dataset['item_price']*dataset['quantity']
dataset.groupby(['order_month'])['gmv'].sum().plot()
plt.show()
Quiz
JAWABAN
plt.show()
plt.display()
plt.plot()
plt.scatter()
JAWABAN : plt.show()
Kesimpulan
Di tengah pengerjaanku, aku mendengar suara celetukan dari Senja. Tampaknya Andra sudah menyampaikan
pada Senja kalau hari ini aku ‘dikembalikan’ padanya.
"Sejauh ini lancar, Aksara?” tanya Senja melihatku yang masih asik menulis kode.
“Iya, nyusun kode untuk bisa jadi grafik, seru juga, Nja. Aku ada bikin catatan sih supaya enggak lupa, mau
lihat?” Aku menunjukkan catatan singkatku seputar dua cara untuk membuat plot menggunakan matplotlib:
Dengan grafik yang sudah aku buat ini saja, sudah bisa melihat trend dan insight-nya. Untuk analisis cepat,
grafik seperti ini terkadang sudah cukup.
Tapi untuk presentasi ke atasan, tentu kita harus membuat grafik yang lebih ‘cantik’.