Anda di halaman 1dari 17

1

MODUL PERKULIAHAN

W542100001 –
Analisis Data
Visualisasi dengan Seaborn,
lanjutan.

Abstrak Sub-CPMK

Visualisasi data dalam Sub-CPMK 3.2.


beragam bentuk grafik. Mampu menyajikan data secara visual
untuk dianalisa lebih lanjut

Seaborn adalah pustaka visualisasi data yang luar biasa untuk grafik statistik
yang diplot dengan Python . Ini memberikan gaya default yang indah dan palet warna
untuk membuat plot statistik lebih menarik. Itu dibangun di atas perpustakaan
matplotlib dan juga terintegrasi erat dengan struktur data dari panda. Dalam tutorial
ini, kita akan melihat bagaimana menggunakan seaborn untuk membuat berbagai plot
dan bagaimana kita dapat menggunakannya bersama dengan matplotlib untuk
membuat plot kita lebih menarik.

9.1. Fungsi pada Seaborn


Count Plot

Plot hitungan dapat dianggap sebagai histogram di seluruh variabel kategori. Contoh
di bawah ini menunjukkan plot hitungan
1 import matplotlib.pyplot as plt
2 import seaborn as sns
3
4 sns.set_context('paper')
5
6 # load dataset
7 titanic = sns.load_dataset('titanic')
8 # create plot
9 sns.countplot(x = 'class', hue = 'who', data = titanic, palette = 'magma')
10 plt.title('Survivors')
11 plt.show()

Point Plot

Plot titik digunakan untuk menunjukkan perkiraan titik dan interval kepercayaan
menggunakan mesin terbang plot pencar. Plot titik mewakili perkiraan tendensi sentral
untuk variabel numerik dengan posisi titik plot pencar dan memberikan beberapa
indikasi ketidakpastian di sekitar perkiraan itu menggunakan bilah kesalahan.

2021 Analisis Data


2 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Plot titik dapat lebih berguna daripada plot batang untuk memfokuskan perbandingan
antara tingkat yang berbeda dari satu atau lebih variabel kategori. Berikut adalah
beberapa contoh plot titik:
1 # importing required packages
2 import seaborn as sns
3 import matplotlib.pyplot as plt
4
5 # loading dataset
6 data = sns.load_dataset("tips")
7 sns.pointplot(x="day", y="tip", data=data)
8 plt.show()

1 sns.pointplot(x="time", y="total_bill", hue="smoker",


2 data=data, palette="Accent")

Joint Plot

Joint Plot menggambar plot dua variabel dengan grafik bivariat dan univariat. Ini
menggunakan Scatter Plot dan Histogram. Joint Plot juga dapat menampilkan data
menggunakan Kernel Density Estimate (KDE) dan Hexagons. Kita juga bisa

2021 Analisis Data


3 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
menggambar Garis Regresi di Scatter Plot. Berikut adalah beberapa contoh plot
bersama
1 import seaborn as sns
2 import matplotlib.pyplot as plt
3 sns.set_style("dark")
4 tips=sns.load_dataset('tips')
5 sns.jointplot(x='total_bill', y='tip',data=tips)

# Add regression line to scatter plot and kernel density estimate to


6
histogram
7
sns.jointplot(x='total_bill', y='tip', data=tips, kind='reg')

8 # Display kernel density estimate instead of scatter plot and histogram


9 sns.jointplot(x='total_bill', y='tip', data=tips, kind='kde')

2021 Analisis Data


4 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
10 # Display hexagons instead of points in scatter plot
11 sns.jointplot(x='total_bill', y='tip', data=tips, kind='hex')

Regplot

2021 Analisis Data


5 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Regplot adalah salah satu fungsi dalam Seaborn yang digunakan untuk
memvisualisasikan hubungan linier yang ditentukan melalui regresi. Juga, Anda akan
melihat bagian yang sedikit berbayang di sekitar garis regresi yang menunjukkan
seberapa banyak pint yang tersebar di sekitar area tertentu. Berikut adalah beberapa
contohnya
Sekarang kita akan memplot variabel x diskrit dan menambahkan beberapa jitter. Di
sini Anda dapat melihat bahwa area di mana titik-titik berpenduduk lebih padat
memiliki porsi yang lebih sedikit di sekitar garis regresi dan bagian yang diarsir lebih
menyebar di mana titik-titiknya lebih tersebar.
1 import seaborn as sns
2 tips = sns.load_dataset("tips")
3 ax = sns.regplot(x="total_bill", y="tip", data=tips)

1 sns.regplot(x="size", y="total_bill", data=tips, x_jitter=0.1)

Kita dapat mengatur parameter ci=None untuk mendapatkan hanya baris tanpa bagian
yang disorot.
1 import seaborn as sns
2 tips = sns.load_dataset("tips")
3 ax = sns.regplot(x="total_bill", y="tip", data=tips,ci=None)

2021 Analisis Data


6 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Lm Plot

Di Seaborn, kita juga dapat menggunakan lmplot alih-alih regplot untuk


memvisualisasikan regresi antara dua variabel seperti yang kita lihat pada contoh
terakhir. Tapi apa perbedaan antara kedua plot?
Fungsi regplot melakukan fit dan plot model regresi linier sederhana sedangkan fungsi
lmplot menggabungkan regplot dan FacetGrid.
Kelas FacetGrid membantu dalam memvisualisasikan distribusi satu variabel serta
hubungan antara beberapa variabel secara terpisah dalam subset dataset Anda
menggunakan beberapa panel.
Lebih lanjut penting untuk dicatat bahwa lmplot() lebih intensif secara komputasi dan
dimaksudkan sebagai antarmuka yang nyaman untuk menyesuaikan model regresi di
seluruh himpunan bagian bersyarat dari kumpulan data.
Berikut adalah contoh sederhana dari lmplot yang tampaknya berfungsi seperti
regplot.
1 import seaborn as sns
2 tips = sns.load_dataset("tips")
3 sns.lmplot(x="total_bill", y="tip", data=tips)

2021 Analisis Data


7 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Berikut adalah bagaimana kita dapat menggunakan fitur lanjutan dari lmplot() dan
menggunakannya dengan grid multi-plot untuk memplot hubungan bersyarat.
1 sns.lmplot(x="total_bill", y="tip", col="day", hue="day",
2 data=tips, col_wrap=2, height=3)

KDE Plot

2021 Analisis Data


8 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Plot KDE adalah Estimasi Kernel Density yang digunakan untuk memvisualisasikan
Probability Density dari variabel data kontinu atau non-parametrik yaitu kita dapat
memplot untuk univariat atau beberapa variabel sekaligus. Berikut adalah beberapa
contohnya
1 import seaborn as sns
2 import matplotlib.pyplot as plt
3 sns.set_style("dark")
4 iris = sns.load_dataset("iris")
5 # Plotting the KDE Plot
6 sns.kdeplot(iris.loc[(iris['species']=='setosa'),
7 'sepal_length'], color='b', shade=True, Label='setosa')
8 sns.kdeplot(iris.loc[(iris['species']=='virginica'),
9 'sepal_length'], color='r', shade=True, Label='virginica')

1 # Setting up the samples


2 iris_setosa = iris.query("species=='setosa'")
3 iris_virginica = iris.query("species=='virginica'")
4
5 # Plotting the KDE Plot
6 sns.kdeplot(iris_setosa['sepal_length'],
7 iris_setosa['sepal_width'],
8 color='r', shade=True, Label='Iris_Setosa',
9 cmap="Reds", shade_lowest=False)
10 # Plotting the KDE Plot
11 sns.kdeplot(iris_virginica['sepal_length'],
12 iris_virginica['sepal_width'],
13 color='r', shade=True, Label='iris_virginica',
14 cmap="Blues", shade_lowest=False)

2021 Analisis Data


9 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Box Plot

Plot kotak, juga disebut diagram kotak dan kumis digunakan untuk menggambarkan
kelompok data numerik melalui kuartil. Disebut diagram kotak dan kumis karena terdiri
dari kotak dan kumis. Boxplot juga digunakan untuk mendeteksi outlier dalam
kumpulan data.
Plot kotak terdiri dari ringkasan 5 titik data yang berbeda: minimum, kuartil pertama,
median, kuartil ketiga, dan maksimum.
 Minimum
 Kuartil Pertama atau 25%
 Median (Kuartil Kedua) atau 50%
 Kuartil Ketiga atau 75%
 Maksimum
1 import seaborn as sns
2 tips = sns.load_dataset("tips")
3 sns.boxplot(x="day", y="total_bill", data=tips)

Izinkan saya menjelaskan secara singkat plot di atas.


 Garis horizontal hitam bawah plot kotak adalah nilai minimum
 Garis horizontal hitam pertama dari bentuk persegi panjang plot kotak adalah
kuartil pertama
 atau 25%
 Garis horizontal hitam kedua bentuk persegi panjang plot kotak adalah Kuartil
kedua atau 50% atau median.
 Garis horizontal hitam ketiga bentuk persegi panjang dari petak kotak yang
sama adalah kuartil ketiga atau 75%
 Garis horizontal hitam atas bentuk persegi panjang plot kotak adalah nilai
maksimum.

2021 Analisis Data


10 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
 Bentuk berlian kecil dari plot kotak adalah data outlier.

Violin Plot

Plot biola juga seperti boxplot meringkas data numerik melalui serangkaian kategori.
Mereka pada dasarnya adalah plot kotak dengan estimasi kepadatan kernel (KDE)
yang dilapis bersama dengan rentang kotak dan dipantulkan agar terlihat bagus. Tidak
seperti plot kotak, di mana semua komponen plot sesuai dengan titik data aktual, plot
biola menampilkan estimasi kepadatan kernel dari distribusi yang mendasarinya.
Berikut adalah beberapa contoh plot biola:
1 import seaborn as sns
2 tips = sns.load_dataset("tips")
3 ax = sns.violinplot(x=tips["total_bill"])

1 sns.violinplot(x="day", y="total_bill", hue="smoker",


2 data=tips, palette="muted")

Sekarang kita juga dapat merepresentasikan plot di atas seperti ini dengan mengatur
parameter split sebagai True:
1 sns.violinplot(x="day", y="total_bill", hue="smoker",
2 data=tips, palette="muted", split=True)

2021 Analisis Data


11 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Heatmap

Peta panas adalah representasi grafis dua dimensi dari data di mana nilai-nilai
individual yang terkandung dalam matriks direpresentasikan sebagai warna. Di
Seaborn, kita dapat membuat peta panas beranotasi yang dapat diubah menggunakan
Matplotlib sesuai kebutuhan.
Sekarang jika kita mendapatkan data 'penerbangan' dataset dan mengubahnya
menjadi bulanan seperti yang ditunjukkan di bawah ini, itu dapat memberi kita banyak
informasi tentang data tersebut. Tetapi informasi ini dalam bentuk tabel dan dapat
ditampilkan lebih baik dengan menggunakan peta panas seperti yang ditunjukkan di
bawah ini:
1 flights=sns.load_dataset("flights")
2 flights = flights.pivot("month", "year", "passengers")
3 print(flights)
Output:
year 1949 1950 1951 1952 1953 ... 1956 1957 1958 1959 1960
month ...
January 112 115 145 171 196 ... 284 315 340 360 417
February 118 126 150 180 196 ... 277 301 318 342 391
March 132 141 178 193 236 ... 317 356 362 406 419
April 129 135 163 181 235 ... 313 348 348 396 461
May 121 125 172 183 229 ... 318 355 363 420 472
June 135 149 178 218 243 ... 374 422 435 472 535
July 148 170 199 230 264 ... 413 465 491 548 622
August 148 170 199 242 272 ... 405 467 505 559 606
September 136 158 184 209 237 ... 355 404 404 463 508
October 119 133 162 191 211 ... 306 347 359 407 461
November 104 114 146 172 180 ... 271 305 310 362 390
December 118 140 166 194 201 ... 306 336 337 405 432
1 sns.heatmap(flights,linewidths=.5,cmap="YlGnBu")

2021 Analisis Data


12 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Sekarang kita juga dapat memasukkan nilai masing-masing ke dalam kotak
menggunakan parameter annot dari fungsi ini
1 import seaborn as sns
2 car_crashes = sns.load_dataset("car_crashes")
3 corr=car_crashes.corr()
4 print(corr)
5 sns.heatmap(corr,annot=True,linewidths=.5,cmap="YlGnBu")
Output
total speeding ... ins_premium ins_losses
total 1.000000 0.611548 ... -0.199702 -0.036011
speeding 0.611548 1.000000 ... -0.077675 -0.065928
alcohol 0.852613 0.669719 ... -0.170612 -0.112547
not_distracted 0.827560 0.588010 ... -0.174856 -0.075970
no_previous 0.956179 0.571976 ... -0.156895 -0.006359
ins_premium -0.199702 -0.077675 ... 1.000000 0.623116
ins_losses -0.036011 -0.065928 ... 0.623116 1.000000

2021 Analisis Data


13 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
Cluster Map

Metode peta cluster memplot kumpulan data matriks sebagai peta panas yang
dikelompokkan secara hierarkis. Ini menggunakan cluster hierarkis untuk mengurutkan
data berdasarkan kesamaan. Ini mengatur ulang data untuk baris dan kolom dan
menampilkan konten serupa di samping satu sama lain untuk pemahaman data yang
lebih mendalam.
1 import seaborn as sns
2 flights=sns.load_dataset("flights")
3 flights = flights.pivot("month", "year", "passengers")
4 sns.clustermap(flights,linewidths=.5,cmap="coolwarm")

Seperti yang Anda lihat di peta ini semua kolom dan baris yang memiliki data serupa
bersama-sama dan sekarang baik tahun maupun bulan tidak berurutan seperti yang
kita lihat di peta panas. Kita bisa memodifikasinya sedikit dan hanya mengelompokkan
baris atau kolom, berikut caranya :

2021 Analisis Data


14 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
1 import seaborn as sns
2 flights=sns.load_dataset("flights")
3 flights = flights.pivot("month", "year", "passengers")
4 sns.clustermap(flights,linewidths=.5,cmap="coolwarm",col_cluster=False)

Sekarang semua tahun teratur tetapi bulan-bulannya dikelompokkan dan dengan


demikian tidak teratur

Facetgrid

Kotak segi membentuk matriks panel yang ditentukan oleh baris dan kolom dengan
membagi variabel. Karena panel, satu plot terlihat seperti beberapa plot. Sangat
membantu untuk menganalisis semua kombinasi dalam dua variabel diskrit.
Keuntungan menggunakan Facet adalah, kita dapat memasukkan variabel lain ke
dalam plot. Plot di atas dibagi menjadi dua plot berdasarkan variabel ketiga yang
disebut 'diet' menggunakan parameter 'col'. Kami juga dapat satu lagi parameter
"baris" yang dapat membantu menambahkan satu variabel lagi ke plot kami. Sekarang

2021 Analisis Data


15 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
plot di bawah ini menunjukkan hubungan antara tip dan total tagihan dan juga
menunjukkan hubungannya dengan dua variabel lagi, yaitu jenis kelamin dan waktu.
1 import seaborn as sns
2 tips = sns.load_dataset("tips")
3 g = sns.FacetGrid(tips, col="time")
4 g.map(sns.scatterplot, "total_bill", "tip")

1 tips = sns.load_dataset("tips")
2 g = sns.FacetGrid(tips, col="time", row="sex")
3 g.map(sns.scatterplot, "total_bill", "tip")

Pair Plot

Plot pasangan membuat kisi Sumbu sedemikian rupa sehingga setiap variabel
numerik dalam data akan dibagi di seluruh sumbu y di satu baris dan sumbu x di satu

2021 Analisis Data


16 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/
kolom. Plot diagonal diperlakukan berbeda: plot distribusi univariat digambar untuk
menunjukkan distribusi marjinal data di setiap kolom.
Pair Plots adalah cara yang sangat sederhana untuk memvisualisasikan hubungan
antara setiap variabel. Ini menghasilkan matriks hubungan antara setiap variabel
dalam data Anda untuk pemeriksaan instan data kami seperti yang akan Anda lihat
pada contoh di bawah ini.
import seaborn as sns
1
from matplotlib import pyplot as plt
2
df = sns.load_dataset('iris')
3
sns.set_style("ticks")
4
sns.pairplot(df,hue = 'species',diag_kind = "kde",kind = "scatter",palette =
5
"husl")
6
plt.show()

Ini membawa kita ke akhir artikel ini di mana kita membahas beberapa dasar-dasar
Seaborn dan belajar merencanakan berbagai plot. Anda bisa mendapatkan kursus
gratis tentang Pembelajaran mesin di akademi pembelajaran yang hebat, klik spanduk
di bawah ini untuk mengetahui lebih lanjut.

9.2. Daftar Pustaka


https://www.mygreatlearning.com/blog/seaborn-tutorial/

2021 Analisis Data


17 Eko Ihsanto, Dr, Ir, M.Eng
Biro Bahan Ajar E-learning dan MKCU
http://pbael.mercubuana.ac.id/

Anda mungkin juga menyukai