Data Visualization with Python Matplotlib for Beginner — Part 2

DQLab Career Track Module

Sharon Michelle Claudya Cindra
19 min readDec 12, 2020
Ada banyak jenis grafik yang bisa kitab buat dengan Matplotlib. Apa sajakah itu? Yuk lanjutkan membacanya di sini :)

Hallo semuanya, apa kabar? Nah, sesuai dengan janji yang kemarin, kali ini kita akan lanjut ke module yang lebih seru bersama Matplotlib di Data Visualization with Python Matplotlib for Beginner — Part 2. Berbeda dari yang sebelumnya, di sini kita bakalan ketemu dengan berbagai macam grafik yang bisa kita buat sesuai dengan tujuannya masing-masing. Sekedar buat bocoran, kita bakalan ketemu dengan pie chart, bar chart histogram, hingga scatterplot. Dan ternyata, bar chart ini ternyata juga bisa kita modifikasi lho, sesuai kebutuhan. Tapi, sebelum ketemu sama jenis grafik-grafik ini, kita akan berkenalan dulu dengan multi line chart. Di multi line chart ini, kita bisa menampilkan data yang lebih menarik berdasarkan variabel tertentu. Penasaran kan, jadinya sama module ini? Daripada penasaran terus, yuk pelajari semuanya ini di Platform DQLab. :)

Nah, daripada berlama-lama terus, yuk kita mulai dulu dengan bagian pertama, yaitu:

Mengenal Jenis-Jenis Visualisasi Data dan Tujuannya

“Secara garis besar, ada empat tujuan visualisasi menurut Andrew Abela, yaitu Perbandingan/Komparasi (Comparison), Distribusi (Distribution), Komposisi (Composition) dan Keterhubungan/Relasi (Relationship).”

Ada banyak sekali jenis visualisasi data yang dapat kita gunakan di Python, mulai dari tampilan yang sederhana hingga yang kompleks. Setiap jenis visualisasi biasanya akan lebih tepat jika digunakan untuk suatu tujuan tertentu. Secara garis besar, ada empat tujuan visualisasi menurut Andrew Abela, yaitu Perbandingan/Komparasi (Comparison), Distribusi (Distribution), Komposisi (Composition) dan Keterhubungan/Relasi (Relationship). Nah, gambaran singkatnya bisa kamu lihat pada gambar berikut.

Penjelasannya antara lain:

1. Perbandingan/Komparasi

Digunakan jika kita ingin membandingkan suatu sekumpulan nilai dengan nilai lainnya atau ingin melihat mana yang lebih besar, mana yang lebih tinggi, mana yang mengalami kenaikan, dsb. Untuk data yang berkaitan dengan waktu, umumnya visualisasi yang digunakan berupa line-chart. Sedangkan, jika nilai yang dibandingkan bersifat kategorikal, akan lebih cocok jika kita menampilkannya menggunakan bar-chart.

2. Distribusi

Digunakan jika kita ingin melihat distribusi/persebaran data di suatu variabel. Visualisasi yang lazim digunakan adalah histogram. Dari tampilan visualisai tersebut, kita bisa melihat apakah datanya banyak terkumpul pada nilai-nilai yang kecil, berat di kanan, simetris, ataupun memiliki distribusi normal. Untuk melihat distribusi pada dua variabel, kita bisa menggunakan scatterplot sebagai alternatifnya.

3. Komposisi

Digunakan untuk melihat komposisi dari suatu variabel jika di-breakdown terhadap suatu dimensi data. Visualisasi yang biasa digunakan adalah stacked bar-chart untuk jenis data kategorikal atau stacked line-chart untuk menampilkan data yang berkaitan dengan waktu.

4. Keterhubungan/Relasi

Digunakan ketika ingin melihat keterhubungan antara suatu variabel dengan variabel lain. Misalnya saja, jika variabel A semakin tinggi, apakah variabel B juga semakin tinggi, atau justru lebih rendah, atau malah tidak ada keterhubungannya. Visualisasi yang biasa digunakan untuk tujuan ini adalah scatter-plot.

Membuat Multi-Line Chart

Setelah presentasi grafik di module Data Manipulation with Matplotlib Pandas — Part 1 berjalan dengan lancar, ternyata masih ada hal yang harus kita lakukan supaya hasil visualisasinya lebih lengkap lagi. Hal tersebut yaitu menggali secara lebih dalam hal apa yang membuat nilai GMV meningkat. Dengan begitu, kita bisa memberikan data ini ke Business Development agar mereka bisa menentukan strategi bisnis ke depannya. :)

Dari dataset pada module sebelumnya, kita akan melakukan breakdown berdasarkan dimensinya, misalnya berdasarkan kolom brand dan order_month. Dari hasil breakdown tersebut, kita dapat melihat bagian mana yang paling berperan dalam kenaikan GMV tersebut. Untuk melakukan breakdown tersebut, kita menggunakan fungsi .unstack() untuk menghitung jumlah seluruh nilai gmv. Oya, sebelumnya, jangan lupa untuk mengubah format tanggalnya supaya hanya menampilkan tahun dan bulan saja. Cara ini bisa kamu lihat lagi di pembahasan Data Visualization with Python Matplotlib for Beginner — Part 1.

Perhatikan baik-baik. Dibandingkan dengan grafik pada module sebelumnya, grafik yang kita buat ini jadi lebih berwarna warni karena kita menampilkan grafik tersebut dengan mengelompokkannya berdasarkan brandnya. Dengan begitu, warna-warna tersebut secara otomatis akan mengikuti varian dari brand yang dikelompokkan tersebut.

Kustomisasi Legend

Jika kita lihat pada output di praktek sebelumnya, kita memiliki komponen baru di sini, yaitu legend. Berhubung brand-nya begitu banyak dan letak defaultnya di tengah, legend tersebut malah menutupi grafiknya. Nah, supaya tidak menutupi grafik, kita memakai function khusus untuk mengatur komponen legend, yaitu function plt.legend(). Beberapa parameter yang bisa ditambahkan pada function tersebut antara lain:

· loc: untuk menentukan posisi legend. Berikut ini beberapa lokasi legend yang bisa kalian definisikan:

1. ‘upper left’, ‘upper right’, ‘lower left’, ‘lower right’: berturut-turut untuk menempatkan legend di pojok atas kiri, atas kanan, bawah kiri, dan bawah kanan dari axes.

2. ‘upper center’, ‘lower center’, ‘center left’, ‘center right’: berturut-turut untuk meletakkan legend di tepi atas tengah, bawah tengah, tengah kiri, dan tengah kanan dari axes.

3. ‘center’: untuk menempatkan legend di tengah-tengah axes.

· ‘best’: jika kita kebingungan dalam menentukan posisi yang terbaik, matplotlib dapat memilih salah satu dari sekian kemungkinan lokasi legend yang telah disebutkan di atas yang paling tidak overlap dengan isi grafik.

· bbox_to_anchor: biasanya digunakan untuk melakukan adjust lokasi dari legend. Bisa berisi 2 angka yang menunjukkan koordinat x dan y, misalnya (1.6,0.5) yang berarti menggeser sejauh 1.6 ke kanan dan 0.5 ke atas. Selain itu, parameter ini juga bisa berisi 4 angka, dimana angka ketiga dan keempatnya menyatakan width (lebar) dan height (tinggi) dari legend.

· shadow: jika diisi True, maka kotak legend akan memiliki bayangan.

· ncol: jumlah kolom dari isi legend. Nilai defaultnya adalah 1.

· fontsize: ukuran huruf pada legend.

· title: untuk memberikan judul pada legend.

· title_fontsize: ukuran huruf pada judul legend

Nah, kembali ke grafik kita, kita akan lanjut dengan mengatur letak legendnya di sebelah kanan dengan posisi di 1.6 sumbu-x dan 0.5 di sumbu-y. Supaya tidak terkesan terlalu penuh, kita akan set legendnya supaya memiliki 2 kolom. Oya, kita juga perlu menambahkan bayangan pada legend supaya terlihat hidup. Potongan kodenya bisa kalian lihat di sini yah.

Sekarang, kita sudah mendapatkan grafik dengan legend yang lebih rapi, sehingga lebih enak dibaca. :)

Kustomisasi Colormap

Setelah kita melakukan breakdown berdasarkan brand-nya, terlihat bahwa trend sepanjang Oktober-Desember 2019 ini ternyata mirip semua. Jadi, kemungkinan besar tidak ada faktor dari brand yang membuat nilai GMV naik. Sebagai gantinya, kita akan mencoba melakukan breakdown berdasarkan province-nya.

Di sini, kita hanya perlu mengganti kolom brand dengan province di .groupby(). Untuk legend-nya, kita akan melakukan sedikit perubahan dengan meletakkannya di bawah tengah dengan posisi koordinat 0.5 di sumbu-x dan -0.5 sumbu-y. Supaya lebih detil, kita akan menambahkan judul ‘Province’ pada legend tersebut.

Sekarang legendnya sudah berpindah tempat di bawah. Jika dibandingkan dengan output sebelumnya, legend di grafik ini sudah memiliki judul sehingga akan lebih jelas variabel apa yang digunakan untuk membandingkan data tersebut.

Selain itu, perhatikan juga bahwa list warna pada grafik tersebut sudah berbeda, tidak default seperti pada waktu menggunakan brand. Mengapa bisa terjadi? Hal ini disebabkan karena adanya parameter cmap (color map) pada function .plot(). Parameter tersebut berfungsi untuk mendefinisikan sekelompok warna yang akan diberikan pada tiap line. Di sini yang digunakan adalah ‘Set1’, yaitu satu set warna yang biasa digunakan untuk warna yang diskrit. Untuk mengetahui jenis-jenis color map lebih lanjut, kalian bisa melihatnya di halaman web ini: https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html.

Dari grafik tadi, terlihat bahwa ada beberapa provinsi yang mendominasi kenaikan dari GMV, seperti DKI Jakarta dan Jawa Barat. Namun, karena jumlah provinsi yang begitu banyak, provinsi-provinsi lain yang ada di bawah jadi kurang terlihat jelas karena bercampur semua garisnya. Supaya terlihat lebih jelas, kita akan memperbaiki grafik ini dengan membuat highlight terhadap top 5 provincenya terlebih dahulu. Kita akan bahan ini di bagian selanjutnya, ya.

Membuat Line Chart GMV Breakdown by Top Provinces

Ok, dari grafik sebelumnya sudah terlihat cukup jelas bahwa kenaikan GMV tersebut dipengaruhi oleh provinsi. Berhubung kita akan fokus terhadap provinsi-provinsi yang memiliki GMV besar, kita akan melakukan highlight untuk top 5 provinsi saja, sedangkan untuk provinsi lainnya kita akan menggabungkannya menjadi ‘other’.

Sebelum itu, kita perlu mengecek lima provinsi dengan GMV tertinggi terlebih dahulu dengan memasukkannya ke dalam variabel top_provinces seperti ini.

dengan output dari statement pada baris ke-7 berupa:

Setelah itu, kita perlu membuat kolom baru untuk memasukkan data-data dari provinsi mana yang masuk dalam variabel top_provinces. Jika ada yang tidak termasuk dalam variabel top_provinces, kita perlu mengganti namanya menjadi ‘other’. Manfaatkan function .apply() & lambda untuk membuat kolom ini.

Setelah memiliki kolom baru, kita bisa melakukan update terhadap grafiknya. Untuk legendnya, kita bisa menempatkannya di atas tengah dengan posisi 1. 1 di sumbu-x dan 1 di sumbu y. Sebagai catatan, untuk mengubah ukuran figure, kita juga bisa menggunakan function plt.gcf().set_size_inches yang diletakkan di akhir code sebelum plt.show().

Setelah kita ubah ukuran figurenya, sekarang grafiknya sudah terlihat lebih panjang. Begitu juga dengan data-data yang ditampilkan di grafik, sekarang sudah terlihat lebih rapi dan jelas setelah kita melakukan highlight terhadap top 5 province-nya.

Membuat Anotasi

Setelah kita merapikan grafik, ada satu lagi yang perlu kita tambahkan supaya grafik tersebut lebih informatif, yaitu anotasi. Apa sih, anotasi itu?Anotasi sebenarnya mirip seperti teks, hanya saja ada suatu titik tertentu yang kita tunjuk di dalamnya sebagai informasi tambahan. Selain teks, kita juga bisa menambahkan panah melalui anotasi tersebut.

Untuk membuat anotasi, kita perlu menggunakan function plt.annotate(). Parameter pertama menunjukkan isi dari teksnya, sedangkan parameter kedua menunjukkan koordinat dari point yang akan dianotasi. Selain kedua parameter tersebut, ada beberapa parameter untuk anotasi yang bisa kalian tambahkan, yaitu:

· xytext : menentukan koordinat dari teks. Jika tidak diisi,maka teks akan diletakkan di koordinat point yang akan dianotasi, yaitu di parameter kedua.

· Arrowprops : untuk menentukan konfigurasi dari panah yang ditambahkan di anotasi yang berupa dictionary. Beberapa hal yang bisa diset dari arrowprops ini yaitu:

1. arrowstyle: untuk menentukan bentuk dari panah penunjuk. Isinya bisa berupa bentuk seperti ‘->’, ‘-|>’, ‘<->’, ‘-[‘ atau bisa juga berupa tulisan seperti ‘fancy’, ‘simple’, ‘wedge’, etc.

2. connectionstyle: untuk menentukan bentuk dari garis panahnya. Ada beberapa nilai yang bisa digunakan, misalnya ‘arc’ dan ‘arc3’ yang berupa garis lurus, ‘angle’ untuk garis berbelok siku, ‘angle3’ untuk garis berbelok lengkung, atau ‘bar’ untuk garis yang berbelok siku sebanyak dua kali.

3. color: untuk menentukan warna dari panah

Dengan menggunakan parameter-parameter tersebut, kita dapat menganotasi multi-line chart, yaitu peningkatan GMV other dan jumlah GMV DKI Jakarta yang mendominasi diantara top 5 province lainnya. Di sini, warna yang akan kita gunakan untuk anotasinya adalah warna merah, dengan posisi teksnya disesuaikan dengan letak nilai yang mau dianotasikan.

Horee, kini tampilan grafik kita sudah terlihat lebih jelas dengan adanya anotasi. :)

Membuat Subset Data

Setelah kita melakukan analisis pada top 5 provinsi dengan GMV tertinggi, kita juga akan melakukan analisis lebih lanjut terhadap behavior transaksi di DKI Jakarta pada kurun waktu Oktober-Desember 2019 ini, mengingat trend-nya mirip dengan overall GMV.

Cara yang mungkin dapat kita lakukan adalah dengan mengecek dulu perbandingan GMV di kota-kota yang tersebar di DKI Jakarta. Hal ini dapat kita lakukan adalah dengan memfilter data-data dari provinsi DKI jakarta selama bulan Oktober-Desember 2019. Hasil filter data ini selanjutnya akan kita simpan sebagai dataframe bernama dataset_dki_q4.

Setelah kita filter datanya, terlihat bahwa data-data yang tersedia sekarang adalah untuk Provinsi DKI Jakarta saja sesuai yang kita mau.

Membuat Pie Chart

Dataframe yang kita buat tadi bisa kita buat pie chartnya. Caranya, kita perlu membuat dataframe agregat terlebih dahulu. Misalnya , kita akan membuat data aggregat gmv_per_city_dki_q4 untuk menghitung jumlah nilai GMV berdasarkan city nya. Kemudian, data aggregat tersebut akan kita masukkan ke function plt.pie() untuk membuat pie chart-nya.

Ada beberapa parameter yang bisa kamu modifikasi untuk membuat pie chart, yaitu:

· labels: array yang berisi label/tulisan yang menunjukkan masing-masing bagian pie.

· colors: array yang berisi warna untuk masing-masing bagian pie.

· autopct: format dari nilai persentasi yang ditampilkan, bisa berupa string atau function.

· shadow: jika diisi True, maka pie chart yang kita buat tersebut akan memiliki bayangan. Nilai defaultnya adalah False.

· radius: jari-jari dari pie-chart.

Selanjutnya, data tersebut akan kita masukkan dalam function plt.pie() dengan menjadikan kolom city sebagai labelnya. Sebelum membuat plotnya,jangan lupa untuk mengatur ukuran figurenya dulu. Semua langkah-langkahnya bisa kamu simak di potongan kode di bawah ini, ya.

Dari pie chart yang dihasilkan, terlihat bahwa kota yang mendominasi adalah Jakarta Selatan untuk nilai GMV-nya, yaitu sebesar 36.23%, disusul oleh Jakarta Pusat dan 3 kota lainnya di provinsi tersebut.

Membuat Bar Chart

Selain menggunakan pie chart, kita juga bisa menggunakan bar chart untuk membandingkan GMV dari tiap kota. Visualisasi seperti ini umumnya lebih disukai karena lebih mudah untuk melihat perbandingan antar kotanya.

Syntax untuk membuat bar chart sebenarnya mirip dengan line chart, kita tinggal menetukan nilai untuk sumbu-x dan sumbu-y, lalu menambahkan parameter kind=’bar’ untuk menghasilkan bar chart seperti berikut ini.

Perhatikan kode yang kita gunakan tadi. Di sini, kita juga menambahkan parameter rotation di plt.xticks() untuk memutar label di sumbu-x.

Sebagai catatan, jika ingin menampilkan barchart-nya secara horizontal, kita bisa mengganti parameternya menjadi kind=’barh’, dengan tidak lupa untuk juga menyesuaikan sumbu-x dan sumbu-y nya.

Membuat Multi-Bar Chart

Dari output grafik sebelumnya, terlihat bahwa Jakarta Selatan dan Jakarta Pusat lumayan mendominasi untuk nilai GMV-nya. Tapi, kita masih belum mengetahui apakah ini konsisten di setiap bulannya. Untuk itu, kita perlu membuat multi-barchart-nya dulu untuk menganalisisnya. Di sini, kita akan mengelompokkan dataset_dki_q4 berdasarkan city dan order_month nya untuk melihat kenaikan GMV dari masing-masing kota di setiap bulannya.

Ternyata, setelah kita buat multi-bar chartnya, GMV di Jakarta Selatan mengalami kenaikan yang cukup pesat hanya pada saat bulan Oktober saja, sementara pada bulan November GMV ini mengalami penurunan yang drastis, lalu mengalami sedikit kenaikan pada bulan Desember. Untuk provinsi lainnya, seperti Jakarta Barat, Jakarta Timur, dan Jakarta Utara, nilai GMV-nya cenderung naik pada bulan Desember meskipun tidak sebanyak GMV yang ada di Jakarta Selatan.

Membuat Stacked Bar Chart

Sebagai pembanding saja, kita akan mencoba mengubah multi-bar chart yang kita buat sebelumnya menjadi stacked bar chart. Ada yang sedikit berbeda dari kode yang akan kita gunakan, yaitu kita mengelompokkan dataset_dki_q4 berdasarkan order_month-nya dulu, baru berdasarkan city. Supaya lebih jelas perbandingan jumlah GMV nya, kita akan mengurutkannya secara menurun.

Kedua jenis bar chart yang kita buat ini sama-sama memberi informasi bahwa GMV mengalami penurunan dari bulan Oktober ke November, kemudian mengalami kenaikan yang pesat di bulan Desember. Berbeda dengan Jakarta Barat, GMV-nya justru semakin meningkat dari bulan Oktober hingga Desember. Sementara itu, di Jakarta Selatan, GMV-nya pada bulan Desember justru lebih kecil daripada GMV pada bulan Oktober.

Jika kita melihat lebih lanjut, Jakarta Selatan adalah penyumbang GMV paling besar diantara provinsi-provinsi lainnya. Untuk itu, kita perlu menyarankan kepada tim bisnis supaya bisa lebih “genjot” lagi penjualan di provinsi tersebut. Dengan begitu, trend-nya bisa naik kembali seperti kota-kota lainnya. :)

Membuat Agregat Data Customer

Jika dilihat lebih lanjut, Jakarta Barat memiliki potensi yang baik dalam penjualannya, dimana tiap bulannya selalu menunjukkan growth yang positif. Akan tetapi, kita belum mengetahui apakah ada pola yang menarik dari customer yang ada di DKI Jakarta. Untuk itu, kita akan mencoba melihat dulu summary untuk tiap customer tersebut. Di sini, kita akan melihat seberapa banyak customer dengan customer_id tertentu melakukan transaksi pembelian. Supaya lebih jelas, kita juga akan menghitung total quantity-nya untuk setiap transaksi.

Dari aggregat data tersebut, kita mendapatkan 711 customers yang bertransaksi di DKI Jakarta pada Q4 2020. Jika diurutkan dari jumlah order terbanyak, bisa dilihat bahwa customer_id 12748 adalah customer yang paling banyak melakukan transaksi, yaitu sebanyak 29 transaksi dengan jumlah quantity mencapai 557 dan GMV lebih dari 175 juta. Customer-customer seperti inilah yang harus tetap dijaga supaya semakin loyal dengan produk.

Membuat Histogram — Part 1

Dari dataframe yang baru saja kita buat tadi, kita bisa melihat persebaran datanya secara sekaligus untuk masing-masing variabel menggunakan histogram. Untuk membuat histogram ini, kita menggunakan function plt.hist() dengan memasukkan variabel yang ingin dicek. Parameter lainnya yang bisa ditambahkan dalam function tersebut yaitu:

· bins: jumlah bin (kelompok nilai) yang diinginkan.

· range: nilai minimum dan maksimum yang ingin ditampilkan.

· orientation: menunjukkan arah ‘horizontal’ atau ‘vertikal’.

· color: warna bar di histogram.

Dimulai dengan menggunakan variabel orders tanpa parameter apapun, kita akan membuat sebuah tampilan plot sederhana untuk histogram pertama kita.

Hasil:

Karena datanya terlalu berat ke kiri, dimana hampir semua customer memiliki jumlah transaksi kurang dari 10, kita perlu melakukan set terhadap range-nya, yaitu dari 1 sampai 5.

Setelah kita atur range-nya, sekarang tampilan range-nya sudah tidak berat sebelah lagi. Jumlah customer yang melakukan transaksi kini terlihat lebih merata banyaknya untuk jumlah transaksi tertentu.

Membuat Histogram — Part 2

Jika kita bisa membuat histogram untuk menghitung jumlah transaksinya, ini artinya kita juga bisa membuat histogram untuk menghitung quantity-nya juga. Untuk menghitung nilai quantity-nya, kita perlu melakukan set terhadap range-nya menjadi 200 untuk melihat banyaknya quantity dengan nilai maksimal 200. Untuk jumlah kelompok nilainya, kita akan bagi menjadi sebanyak 100 kelompok.

Dari histogram yang kita buat ini, dapat dilihat bahwa persebaran nilai quantity paling banyak adalah quantity dengan range 0 hingga 25. Untuk quantity pada range selanjutnya cenderung memiliki persebaran nilai yang lebih sedikit.

Membuat Histogram — Part 3

Untuk menghitung persebaran nilai yang memiliki satuan yang tidak terlalu banyak, seperti quantity dan order, kita tinggal memasukkan range nilai yang akan kita tampilkan serta banyaknya kelompok nilai yang akan kita spesifikasikan. Akan tetapi, berbeda halnya dengan GMV. Untuk melihat persebaran GMV, kita harus menormalisasi ticks label di sumbu-x nya terlebih dahulu karena angka yang menunjukkan GMV biasanya bisa jadi terlalu panjang. Caranya yaitu dengan menampilkan nilai GMV dalam jutaan dengan membagi tiap GMV-nya dalam satuan juta.

Setelah kita tampilkan grafiknya, ternyata variabel GMV ini juga memiliki distribusi yang mirip dengan kedua variabel sebelumnya, dimana grafiknya cenderung condong ke kiri.

Membuat Scatterplot

Penyajian histogram tadi sebenarnya sudah cukup bagus untuk menampilkan persebaran nilai dari variabel tertentu. Akan tetapi, kita belum mengetahui apakah variabel tersebut saling berkorelasi. Untuk itu, kita perlu melihatnya dengan scatterplot.

Untuk membuat scatterplot, kita akan menggunakan function plt.scatter() dengan memasukkan variabel-variabel yang akan dibuat scatterplot. Misalnya, jika kita ingin menampilkan variabel quantity dan gmv, kita cukup memasukkan kedua variabel tersebut, kemudian menampilkan korelasi dari kedua variabel tersebut seperti pada kode berikut.

Hasil:

Hmmm, dari scatterplot yang kita buat ini, bisa kita simpulkan bahwa semakin besar quantity-nya, GMV nya cenderung semakin tinggi. Akan tetapi, masih ada masalah lain dalam data tersebut, yaitu banyaknya data yang terkumpul di nilai-nilai kecil sehingga tidak begitu terlihat detailnya di area situ.

“Jika seorang customer telah membeli dengan banyak quantity, kemungkinan GMV dari customer tersebut juga akan semakin besar.”

Untuk itu, kita perlu memperbaiki scatter plot tersebut dengan mengubah ukuran figurenya menjadi 10 x 8, kemudian menentukan batasan nilai untuk sumbu-x dan sumbu-y nya supaya bisa menampilkan data-data yang tersebar di nilai-nilai yang kecil tersebut dengan lebih jelas.

Dan taraaa! Sekarang, persebaran korelasinya sudah terlihat lebih jelas dari sebelumnya. Dari scatter plot yang kita buat ini, semakin jelas terlihat bahwa quantity dan GMV itu berkorelasi positif. Jika seorang customer telah membeli dengan banyak quantity, kemungkinan GMV dari customer tersebut juga akan semakin besar.

Project

Dari sekian banyaknya praktek yang kita lakukan, kita dapat menyimpulkan bahwa setiap jenis grafik memiliki fungsinya sendiri-sendiri, tergantung dari jenis data yang ditampilkan. Dari grafik-grafik yang sudah kita buat tadi, dapat kita simpulkan bahwa fungsi dari masing-masing jenis grafik tersebut adalah:

· Multi line-chart untuk melihat komparasi dari GMV dari berbagai provinsi, dari bulan ke bulan.

· Pie chart atau multi bar-chart untuk melihat komposisi GMV per kota.

· Histogram untuk melihat distribusi GMV atau quantity.

· Scatterplot untuk memperlihatkan relasi antara quantity dan GMV.

Oleh karena itu, saat kita ingin membuat suatu visualisasi dari data yang dimiliki, kita bisa memilih jenis grafik mana yang paling tepat untuk ditampilkan. Supaya lebih paham lagi bagaimana menampilkan jenis grafik-grafik ini, yuk kita sama-sama mempraktekkan ilmu yang kita miliki dengan mengulangnya kembali di case-case yang akan kita hadapi ini. :)

Case 1: Menentukan brand top 5

Dalam case ini, kita akan melakukan analisis untuk top brands di bulan Desember 2019. Caranya yaitu dengan membuat variabel baru bernama dataset_top5brand_dec yang berisi data penjualan bulan Desember 2019, dimana dataframe tersebut hanya memuat top 5 brand dengan quantity terjual terbanyak selama bulan Desember 2019. Untuk visualisasi-visualisasi selanjutnya, kita hanya akan menggunakan dataframe ini.

Di sini, brand yang termasuk dalam top_brands adalah BRAND_S, BRAND_P, BRAND_R, BRAND_C, dan BRAND_A.

Case 2: Multi-line chart daily quantity untuk brand top 5

Selanjutnya, kita akan melakukan analisis terhadap top brands di bulan Desember 2019. Visualisasi yang akan kita buat adalah multi-line chart untuk menampilkan banyaknya quantity yang terjual dalam harian dengan melakukan breakdown per brandnya. Pada satu titik dimana lonjakan quantity paling besar terjadi, kita akan menandainya dengan anotasi. Itu artinya, akan terlihat 1 tanggal di grafik tersebut dimana ada salah satu brand yang mengalami lonjakan (quantity lebih tinggi dari tanggal-tanggal lain).

Di sini dapat dilihat bahwa nilai quantity dari brand_P melonjak pesat setelah tanggal 6 Desember, yaitu hingga mencapai 300 lebih.

Case 3: Kuantitas penjualan brand top 5 selama Desember 2019

Setelah kita melakukan analisis quantity terhadap brand-nya, kita akan analisis lebih lanjut pada jumlah product untuk masing-masing brand yang laku selama bulan Desember 2019. Untuk visualisasinya, kita akan menggunakan barchart dengan mengurutkan nilai unik dari product_id nya secara menurun.

Di sini, brand dengan jumlah produk yang paling banyak adalah BRAND_S, dengan jumlah produk mencapai 140 lebih. Untuk jumlah produk paling sedikit ditempati oleh BRAND_A dengan banyaknya produk mencapai 60 lebih.

Case 4: Penjulan produk diatas 100 dan dibawah 100 selama Desember 2019

Dari sekian banyaknya produk yang kita analisis tadi, ada hal menarik yang masih menjadi pertanyaan kita, yaitu adakah pola yang menarik dari banyaknya produk yang terjual sebanyak 100 ke atas dan yang terjual kurang dari nilai tersebut? Nah, untuk mengamati pola tersebut, kita perlu membuat visualisasinya dalam bentuk stacked chart untuk melakukan breakdown terhadap bar chart yang kita hasilkan di Case 3, yaitu untuk produk yang terjual >= 100 dan < 100 di bulan Desember 2019.

Untuk jumlah produk per brand-nya, kita akan mengurutkannya secara menurun dengan brand di sebelah kiri adalah brand dengan product yang lebih banyak.

Ternyata, produk dengan jumlah penjualan kurang dari 100 lebih mendominasi dibandingkan dengan yang total penjualannya mencapai 100 ke atas.

Case 5: Murah atau mahalkah harga produk brand top 5

Setelah kita mengamati adanya dominasi penjualan produk pada jumlah tertentu di Case 4, mungkin kita bertanya-tanya, seberapa mahalkah harga produk yang ada di top 5 tersebut? Untuk itu, kita perlu membuat histogram untuk melihat distribusi harga product-product yang ada di top 5 brand tersebut. Untuk tiap product_id nya, kita akan mengambil nilai median harganya supaya lebih safe.

Ternyata, harga produk dari top 5 brands tersebut cenderung lebih banyak yang murah, dengan harga paling murah yaitu di bawah 250.000 dan yang paling mahal mencapai 2000.000. Banyaknya produk dengan penjualan tertinggi diraih oleh produk dengan harga 500.000. Sementara itu, produk dengan harga lebih mahal, yaitu sekitar 1.250.000 ke atas cenderung lebih rendah penjualannya.

Case 6a: Korelasi quantity vs GMV

Setelah kita melihat persebaran harganya, kita perlu mengecek korelasi antara quantity dengan GMV-nya. Untuk itu, kita perlu membuat scatter plot untuk melihat korelasi dari kedua variabel tersebut untuk setiap product_id nya.

Dari scatter plot tersebut dapat kita amati bahwa semakin tinggi quantity-nya maka semakin tinggi GMV-nya. Lalu, bagaimana dengan korelasi antara median harga dengan quantitynya? Kita akan bahas korelasi kedua variabel ini di case selanjutnya, ya.

Case 6b: Korelasi median harga vs quantity

Untuk melihat apakah produk yang lebih murah cenderung lebih banyak dibeli, kita akan memvisualisasikannya dengan scatter plot yang menampilkan korelasi antara quantity dengan median harga untuk setiap product_id nya.

Ternyata, produk dengan median harga lebih murah cenderung lebih banyak dibeli daripada produk dengan median harga yang lebih mahal, dimana jumlah produk tertinggi yang dibeli adalah produk seharga 125.000 dengan jumlah tertinggi mencapai 225 lebih. Untuk produk dengan harga relatif mahal, yaitu antara 1.125.000 hingga 2000.000, penjualan tertingginya hanya mencapai 50 lebih saja.

Yeeaayyy, akhirnya kita telah berhasil menyelesaikan pembahasan module Visualization with Pandas Matplotlib for Beginner — Part 2! Next, kita masih akan lanjut dengan Pandas dengan pembahasan yang lebih seru lagi. See you next time di module selanjutnya, ya :)

Referensi:

https://academy.dqlab.id/main/package/practice/165

--

--

Sharon Michelle Claudya Cindra
Sharon Michelle Claudya Cindra

Written by Sharon Michelle Claudya Cindra

Interested in Websites, Data Science, fashion, and cosmetics :)

No responses yet