P3 – Visualisasi Data
Pengenalan Matplotlib
Matplotlib adalah library Python yang fokus pada visualisasi data dalam bentuk graphs. Library
ini digunakan untuk membuat plot, histogram, power spectra, grafik batang, grafik error,
scatterplot, dll. Matplotlib dapat digunakan dalam script Python, Python dan IPython shell,
server aplikasi web, dan beberapa toolkit graphical user interface (GUI) lainnya. Bentuk
representasi merupakan hal penting dengan mempertimbangkan jenis data apa yang
ditampilkan, sehingga data mudah untuk dibaca dan dipahami. Pada perkara ini matplotlib
mampu merepresentasikan data menjadi berbagai warna, tekstur, dan style menjadi
glyphs(points, lines, dan area). Graphs akan digambarkan pada suatu figure yang didalamnya
dapat terdiri dari satu atau lebih axes.
Untuk membuat sebuah plot, hal yang perlu disiapkan adalah figure dan axes. Pertama-tama
siapkan sample data minimal 2 variabel yang akan di plot.
Sebelum mendalami pembuatan figure dan kustomisasinya lebih lanjut, terlebih dahulu perlu
dikeathui apa saja bagian dari figure yang dimaksud. Berikut merupakan penjelasan
mengenai bagian dari sebauh figure.
Gambar 3 Anatomy figure
a. Figure
Merupakan media atau wadah dasar untuk melakukan visualisasi data. Figure disini
merupakan tempat besar dimana plot akan ditampilkan. Didalam sebuah figure dapat
ditampilkan beberapa subplot kecil yang menampilkan data terpisah.
b. Axes
Axes merupakan area gambar/ area plotting. Axes berada didalam figure. Jika figure
belum dibuat, maka axes tidak dapat ditampilkan. Begitu pula sebaliknya, jika telah
dibuat figure namun tidak memiliki axes, maka tidak ada gambar yang ditampilkan.
Satu figure dapat memiliki beberapa axes/subplot.
Gambar 4 Multiple axes
c. Axis
Axis mengindikasikan sumbu gambar. Matplotlib mampu melakukan visualisasi lebih
dari 2 sumbu
Metode ini menggunakan function plt.subplots untuk membuat sebuah figure dan axes. Dapat
dilihat bahwa untuk metode eksplisit, terlebih dahulu user membuat sebuah figure dan sebuah
axes kosong. Setelah itu data kemudian di-assign ke dalam axes untuk ditampilkan.
Gambar 6 Pembentukan figure
Secara default grafik yang ditampilkan akan memiliki latar belakang putih dan non-grid.
Ukuran grafik juga menyesuaikan dengan range maksimum pada data. Untuk keperluan
kustomisasi, style grafik dapat diubah sesuai dengan preferensi. Adapun perubahan style
tersebut dapat dilakukan dengan menambahkan method plt.style.use(“xx“). Sedangkan
ukuran figure diubah menggunakan figsize.
Gambar 7 Merubah style grafik
Dalam melakukan pengolahan data, dibutuhkan visualisasi yang baik agar data yang
ditampilkan dapat diterima secara baik oleh pengguna. Pada matplotlib, terdapat banyak sekali
cara kustomisasi untuk visualisasi data dengan kegunaanya masing-masing, seperti
penggunaan histogram, bar, dan line. Setiap jenis plot yang disediakan oleh matplotlib dapat
dikostumisasi seperti labelling pada Sumbu, legenda, atau lainnya. Sub-bagian kali ini akan
membahas kustomisasi visualisasi dengan memanfaatkan library matplotlib.
A. Basic Visualisasi Plot
Penggunaan Visualiasi menggunakan .plot() merupakan visualisasi dasar pada
matplotlib. Dimana fungsi .plot memiliki parameter yang dapat dimasukkan ke dalam
fungsi tersebut yang membentuk kustomisasi tertentu.
.plot() ini belum dimasukkan parameternya sehingga muncul blank canvas yang
menampilkan 2 sumbu dengan parameternya masih ter-declare secara default oleh
matplotlib. Untuk mengetahui informasi terkait syntax yang dipanggil, dapat dilakukan
dengan menekan Shift+Tab pada Anaconda dan Tab pada Google Colab. Maka pada
fungsi plot matplotlib dapat dilihat parameter-parameter yang dapat diinput beserta
kegunaan pemanggilan fungsi tersebut.
Gambar 11 Parameter Pyplot
Character Color
‘b’ Blue
‘g’ Green
‘r’ Red
‘c’ Cyan
‘m’ Magenta
‘y’ Yellow
‘k’ Black
‘w’ white
Fitur pemilihan warna juga mendukung menggunakan code hex dari warna tersebut
sehingga pendeklarasian menggunakan
Kita buat section kembali yang berisi data yang sudah diolah kita plot menggunakan
pyplot.plot()
Triangle Left
‘<’ ‘+’ Plus Marker
marker
Triangle Right ‘x’ X marker
‘>’
marker
‘1’ Tri Down marker ‘X’ X (filled) marker
‘2’ Tri Up marker ‘D’ Diamond Marker
Thin Diamond
‘3’ Tri Left marker ‘d’ Marker
b. Label
a) Fungsi Label Matplotlib
Fungsi label pada matplotlib merupakan bagian dari matplotlib.pyplot
dimana terdapat 2 jenis fungsi untuk menambahkan label pada tiap-tiap
sumbu, yaitu .xlabel() dan .ylabel(). .xlabel() berguna untuk
menambahkan label sumbu x dan .ylabel() berguna untuk
menambahkan label sumbu y.
.xlabel(“xlabel”, …)
.ylabel(“ylabel”,…)
Property lainnya pada fungsi ini juga mencakup ke dalam properti pada
text yang diinputkan seperti fontsize, fontstyle, dan lainnya. Untuk lebih
lengkapnya property pada text properties matplotlib terdapat pada
dokumentasi berikut ini.
Contoh
Berdasarkan contoh sebelumnya, tambahkan kembali syntax berikut
sebelum fungsi show()
Sehingga keseluruhan section kode menjadi berikut.
• plt.xlabel("Bulan",
fontsize='12')menampilkan label pada
sumbu x dengan nama “Bulan” dan ukuran
font 12
• plt.ylabel("Kasus",fontsize ='12')
menampilkan label pada sumbu y dengan nama
“Kasus” dan ukuran font 12
c. Legenda
Fungsi pada kelas pyplot juga terdapat pendeklarasian legenda. Pada
matplotlib.pyplot, pemanggilan fungsi legenda sebagai berikut.
.legend()
Legend dipanggil secara baik saat fungsi .plot() ditambahkan property label.
Jika pemanggilan fungsi legend tanpa menggunakan property label di fungsi
.plot(), maka akan ada informasi berikut.
No handles with labels found to put in legend.
Fungsi legend memiliki bentuk lain untuk mendeklarasikannya, yaitu dengan
penulisan label pada fungsi legend menggunakan array
.legend(([Data 1, Data2],[‘Label Data 1’, ‘ Label Data2’], …)
Dimana Data 1 akan memiliki label ‘Label Data 1’ dan data 2 akan memiliki
label ‘Label Data 2. Label juga dapat ditempatkan pada tempat-tempat tertentu
jika ingin kita pindahkan sesuai dengan keinginan.
.legend(loc = ‘string’)
.legend(loc = loc_code)
Dengan lokasi yang dapat atur berdasarkan tabel berikut.
Loc String Loc Code
‘best’ 0
‘upper right’ 1
‘upper left’ 2
‘lower left’ 3
‘lower right’ 4
‘right’ 5
‘center left’ 6
‘center right’ 7
‘lower center’ 8
‘upper center’ 9
‘center’ 10
Untuk selengkapnya terkait dokumentasi .legend() terdapat pada link berikut
ini.
Contoh
Pada program sebelumnya, tambahkan fungsi .legend() menjadi berikut
d. Axis Limit
Penggunaan kelas pyplot dalam matplotlib juga mendukung pengaturan
batas/limit dari sumbu hasil plot, dimana pengguna dapat membatasi titik awal
hingga akhir pada data yang diplot. Penggunaan fungsi ini dipanggil dengan
cara berikut.
.xlim(left,right)
.ylim(left,right)
Xlim merupakan limit yang akan digunakan pada sumbu X, sedangkan Ylim
merupakan limit yang digunakan pada sumbu Y. Left merupakan batas sumbu
terendah dan Right merupakan batas sumbu tertinggi yang akan ditampilkan.
Untuk selengkapnya terkait dokumentasi .legend() terdapat pada link berikut
ini.
Contoh
Pada contoh sebelumnya, tambahkan kode berikut.
Matplotlib adalah salah satu library Python yang berfokus pada visualisasi data seperti
membuat plot grafik. Multiple subplot merupakan salah satu fungsi yang tersedia pada
matplotlib untuk pembuatan grafik lebih dari satu pada single command.
Hal pertama yang dilakukan untuk memulai menggunakan matplotlib, lakukan import terlebih
dahulu library matplotlib.pyplot as plt. Penggunaan as di sini, artinya kita menggantikan
pemanggilan fungsi pyplot pada matplotlib dengan plt untuk proses berikutnya. Lalu hal yang
sama dilakukan pada import library numpy. numpy merupakan salah satu library python yang
berfokus pada scientific computing yang di sini digantikan dengan np agar memudahkan
penulisan koding untuk kedepan nanti.
Data x dan y dapat ditulis dengan berbagai macam seperti gambar dibawah, berbagai jenis
macam penulisan seperti gambar dibawah ini mempunyai fungsi-fungsi terntentu seperti
np.linspace yang berfungsi sebagai pembatas contoh: Np.linspace (start = 0, stop = 100, num
= 5) ada fungsi lain seperti np.cos dan np.sin untuk penggunaan sin dan cos dan yang terakhir
ada f
kedua kita bisa membuat grafik dengan satu plot dengan command line dibawah ini
Pada baris pertama kita tentukan berapa subplots yang kita inginkan, pada kasus ini hanya satu
karena tanda kurung tidak diisi (). subplots () tanpa argumen hanya dapat membuat Gambar
dan Sumbu tunggal Lalu baris kedua digunakan untuk menetukan axis/sumbu x dan y. Baris
ketiga yang terakhir untuk menentukan title atau nama pada grafik tersebut.
Baris pertama pada kali ini berbeda dengan sebelumnya karena kali ini plt.subplots mempunyai
angka dua pada dalam kurung. Angka dua yang terdapat di dalam kurung digunakan untuk
menyatakan berapa baris grafik yang kita inginkan, pada contoh ini kita gunakan dua. Pada
baris ketiga dan keempat terdapat angka didalam kurung, angka ini digunakan untuk
menyatakan ada dibaris berapa sumbu tersebut contoh: axs[0]. plot (x, y) berarti axis ini akan
ditempatkan pada baris nol (di sini yang dimaksud nol adalah pertama).
Gambar 21 Grafik subplot vertical
Hal yang berubah pada grafik menumpuk horizontal adalah pada baris pertama plt.subplots(1,
2) yang disini berarti grafik subplot memiliki satu baris dan memiliki dua kolom yang
menghasilkan grafik menumpuk horizontal seperti gambar dibawah.
Lalu setelah kita menggunakan data diatas untuk dijadikan sebagai grafik kita dapat
menulis coding seperti gambar dibawah ini.
pada baris pertama kita bisa menyesuaikan kolom dan baris untuk grafik sesuai dengan
kemauan kita, lalu dilanjutkan dengan menulis sharex=True dan sharey=True ini berarti
kita dapat Mengontrol berbagi properti di antara sumbu x (sharex) atau y (sharey). Pada
command ax[0][0] dan sejenisnya digunakan untuk menkoordinatkan grafik contoh
pada ax[0][0] yang berartikan bahwa sumbu ini berada pada kolom pertama dan baris
pertama dan begitu pula dengan sumbu-sumbu selanjutnya. Fungsi color adalah untuk
menentukan warna pada figur grafik dan fungsi label untuk menandakan grafik. Pada
baris selanjutnya terdapat fungsi fig.legend() yang berfungsi untuk membuat legenda
pada grafik, yang terakhir ada plt.show() untuk menunjukan grafik ke output.
1. Bar Chart
2. Scatter Plot
3. Histogram
Akan di gunakan data tentang data harga dan atribut dari berlian.
https://www.kaggle.com/shivam2503/diamonds?select=diamonds.csv
Dari gambar di atas dapat di lihat bahwa data ini memiliki paling banyak data berlian dengan
cut ideal, premium, very good, good, dan fair. Method set_xticklabels() adalah untuk
mengontrol komponen label data di sumbu x. di berikan label nya dengan data category, dan
di putar sebesar 90 derajat agar label tidak bertumpuk.
Selanjutnya kita akan mempelajari penggunaan Multiple Bar Chart atau biasa juga disebut
dengan Grouped Bar chart. Metode ini digunakan saat kita ingin membandingkan beberapa
data dengan lebih dari satu variabel pembanding. Kita akan mengambil contoh mebandingkan
kolom cut dengan variabel pembanding depth dan table karna mempunyai selisih nilai yang
cukup dekat sehingga kita mudah untuk membandingkannya, namun jika kita membandingkan
data dengan selisih nilai yang berbeda jauh seperti pada kolom price dan kolom carat, maka
visualisasi dari bar plot akan sulit untuk dibaca karna perbedaan nilai yang sangat jauh.
Langkah pertama adalah kita mengelompokan data yang ingin kita bandingkan di dalam
variabel ‘group’ agar memudahkan kita untuk melakukan Multiple Bar Chart:
kemudian kita akan membuat Multiple Bar Chart dengan membandingkan data pada kolom
cut dengan kolom depth dan table sebagai variabel pembandingnya:
Berikut merupakan hasil dari visualisasi menggunakan Bar Chart:
Selanjutnya jika kita ingin menukar data yang ingin kita banding menjadi kolom depth dan
table dengan variabel pembandingnya adalah colom cut, maka langkah pertama adalah dengan
men-tranpose group yang sudah kita buat.
Ada dua cara untuk membuat Multiple Bar Chart seperti ini yaitu dengan cara manual atau
dengan cara looping.
- Cara manual :
2. Scatter Plot
Scatter plot berguna untuk melakukan perbandingan data antara data bertipe numerik. untuk
melakukan visualisasi scatter plot bisa dilakukan menggunakan method scatter().Perbedaan
menggunakan plot biasa dengan menggunakan scatter plot.
Kelebihan Scatter Plot daripada Plot biasa adalah Scatter Plot memiliki banyak paramater yang
bisa kita atur sesuai kebutuhan agar bisa memudahkan kita untuk memvisualisasi data.
Misalkan ingin mengetahui perbedaan distribusi harga berlian di seluruh dunia untuk cut Very
Good dan Premium. Berikut adalah contoh visualisasi dari Histogram nya :
Gambar 28 Histogram