Modul 3
Modul 3
Pengenalan Dataset
Datanya ada di file 'https://storage.googleapis.com/dqlab-
dataset/retail_raw_reduced.csv'
Di sini terlihat bahwa kita punya 5000 barisdata, dan terdiri dari 9 kolom.
Penjelasannya sbb:
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
Penambahan Kolom Order Month pada Dataset
Kita bisa memanfaatkan library pandas dan numpy untuk mengolah data.
“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.
Kita belum punya kolom bulan, baru ada order_date yang merupakan tanggal transaksi.
Tapi, tidak masalah. Kita 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 bertime datetime,
dalam hal ini diubah menjadi '%Y-%m', yang berarti outputnya adalah waktu
dengan bentuk YYYY-MM atau tahun dan bulan saja, tanggalnya sudah tidak ada.
Jika berhasil dijalankan maka akan diperoleh tampilan 5 data teretas sebagai berikut :
Penambahan Kolom GMV pada Dataset
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
[5 rows x 11 columns]
Sekarang isi dataframe menjadi seperti ini, sudah ada kolom order_month dan gmv.
order_month gmv
0 2019-07 3524041000
1 2019-08 4452923000
2 2019-09 3947002000
3 2019-10 6719937000
4 2019-11 6182229000
5 2019-12 8148235000
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 tombol Run, diperoleh tampilan line chart-nya
seperti berikut ini :
Graphic 1
Kesimpulan :
cara untuk membuat plot menggunakan matplotlib:
Ada beberapa istilah dan komponen di sebuah plot, nanti akan mempermudah mengingat
function apa yang digunakan untuk memodifikasinya.
Figure adalah keseluruhan visualisasi yang kita plot dalam 1 kali menjalankan
code.
Sedangkan satu plot (yang dibuat saat memanggil .plot() atau .scatter())
disebut Axes. Sebuah Figure bisa terdiri dari beberapa Axes.
Setiap Axes biasanya memiliki sumbu-X (X-axis) dan sumbu-Y (Y-axis). Masing-
masing sumbu memiliki komponen sebagai berikut:
o Axis Label: Nama dari sumbu yang ditampilkan.
o Tick: Penanda berupa titik/garis kecil yang berjajar di sumbu, sebagai
referensi skala nilai.
o Tick Label: Tulisan di tiap tick yang menyatakan nilainya.
Untuk isi grafiknya sendiri, bisa berupa line (untuk line plot), atau marker (untuk
scatter plot), bisa juga bentuk lain seperti bar (untuk bar plot / histogram).
Aksesoris lain yang bisa ditambahkan, di antaranya Grid untuk mempermudah
melihat tick yang sejajar, dan Text untuk memberikan informasi tambahan
berbentuk teks di grafik.
Memahami komponen-komponen di atas sudah cukup untuk melakukan berbagai
visualisasi dengan matplotlib. Untuk anatomi yang lebih lengkap, bisa dilihat di link
berikut: https://matplotlib.org/3.1.3/gallery/showcase/anatomy.html.
Jika keseluruhan kode pada code editor dengan benar ditulis dan diekskusi dengan maka
diperoleh hasil berupa:
Dalam contoh ini, ukuran Figure telah diubah agar memiliki panjang 15 inch, dan lebar 5
inch. Sehingga line chart-nya bisa memanjang ke kanan dan lebih mudah dilihat trend-
nya.
Sekarang terlihat bahwa chart ini sudah memiliki judul, dan label teks di kedua sumbunya.
loc: digunakan untuk menentukan posisi title, misalnya ‘left’ untuk membuat rata
kiri, ‘right’ untuk rata kanan, dan ‘center’ untuk meletakkannya di tengah. Jika tidak
didefinisikan, maka defaultnya title ada di tengah.
pad: digunakan untuk menambahkan jarak antara judul ke grafik (dalam satuan px),
misalnya kita tidak ingin judulnya terlalu menempel dengan grafiknya, jadi kita beri
jarak.
fontsize: digunakan untuk mengganti ukuran font/huruf (dalam satuan px).
color: digunakan untuk mengganti warna huruf judul. Kita bisa menggunakan
warna dasar dengan kata seperti ‘blue’, ‘red’, ‘orange’, dsb. Bisa juga dengan hex
string, misalnya '#42DDF5' untuk warna biru muda.
Untuk xlabel dan ylabel, kita bisa mengganti fontsize dan color, tetapi tidak bisa mengganti
loc.
Mari modifikasi judul, xlabel, dan ylabel dengan parameter-parameter di atas, misalnya
seperti ini:
Jika dieksekusi kode yang telah selesai dituliskan pada code editor dengan , maka
diperoleh output grafik berupa
Bisa dilihat bahwa judulnya sekarang menjadi lebih besar, agak berjarak ke atas, dan
berwarna biru. Label di sumbu x maupun y juga menjadi lebih besar dari sebelumnya.
Kustomisasi Grid
kustomisasi grid juga berguna agar nilai di masing-masing titik bisa mudah dipetakan ke
sumbu-y. Caranya dengan menambahkan grid
Caranya dengan menambahkan plt.grid() dengan parameter yang mirip dengan line.
Contohnya di sini:
Jika telah selesai dikustomisasi gridnya dan kemudian dijalankan dengan , maka tampilan
grafik yang diperoleh adalah
Kustomisasi Axis Ticks
Nilai-nilai di sumbu x dan y bisa diakses melalui function plt.xticks() dan plt.yticks().
Untuk mengubah ticks di sumbu-y menjadi milyar, bisa menambahkan code sebagai
berikut:
Jika telah diselesaikan penulisan kodenya dan dijalankan dengan , diperoleh tampilan
grafik berikut ini
Dapat dilihat bahwa plt.ticks() yang sebelumnya, digantikan dengan nilai baru yaitu nilai
awal dibagi dengan 1 mily\ar (1000000000).
Jika dijalankan kode yang telah ditulis pada code editor dengan , berikut
ditampilkan kustomisasi batas sumbu y -nya:
Untuk mengatur batas maksium, kita tambahkan juga parameter ymax, tetapi sepertinya di
sini tidak perlu. Kita juga bisa mengatur batas minimum dan maksimum sumbu-x dengan
function plt.xlim.
Jika keseluruhan kode dijalankan diperoleh tampilan grafik seperti berikut ini
Perhatikan bahwa ada beberapa parameter yang diset saat menggunakan plt.text. Dua
angka pertama itu adalah koordinat, x dan y. Saat set transform=fig.transFigure, maka
koordinatnya berkisar 0 sampai 1 (untuk x dari kanan ke kiri, dan untuk y, dari bawah ke
atas).
Jika parameter transform tidak diisi, maka koordinatnya dalam satuan inch (Dalam contoh
ini, dari 0-15 dari kiri ke kanan, dan 0-5 dari bawah ke atas). Seperti halnya title atau label,
dimungkinkan juga untuk set warna dan ukuran hurufnya.
Kita bisa menyimpannya ke berbagai tipe file, seringnya sih jpg, png, atau kadang pdf juga
bisa. Untuk mengetahui format lengkapnya, kita bisa menggunakan code berikut:
plt.gcf().canvas.get_supported_filetypes()
dengan outputnya menunjukkan ke dalam tipe file apa saja dapat disimpan
Tapi biasanya, parameter-parameter ini tidak digunakan karena grafik di file gambar bisa
jadi berbeda dengan yang muncul saat menjalankan code di python.
Jadi, coba disimpan dengan settingan seperti ini ya:
Jika berhasil kodenya dibuat dan dijalankan dengan diperoleh grafik seperti berikut ini
Catatan :
Figures now render in the Plots pane by default. To make them also appear inline in the Console,
uncheck "Mute Inline Plotting" under the Plots pane options menu.
Solusi :
Klik View, hilangkan centang di Lock panes and toolbars, kemudian pastikan di View Panes