import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#load dataset yang disediakan oleh modul atau library seaborn
= sns.load_dataset('iris')
iris iris
Pertemuan 4 : Data Visualization (seaborn)
Data visualization in python using seaborn
Kembali ke EDA
Seaborn
Seaborn adalah library visualisasi data yang dibangun di atas matplotlib, dan menggunakan struktur data yang ada pada library pandas. Seaborn banyak digunakan karena penggunaannya yang cukup simple dibandingkan dengan matplotlib.pyplot dengan hasil visualisasi yang lebih beragam.
baca dokumentasi seaborn di sini : Seaborn
Berikut salah satu contoh visualisasi dari data iris yang dihasilkan oleh seaborn.
Inputs
Seaborn memiliki 3 cara untuk menginput data sebagai parameter (sumbu y dan/atau sumbu x) dari fungsi-fungsi visualisasinya.
- List/Series/Array
- Pandas Dataframe dan kolom
- Langsung masuk ke dataframenya untuk diolah
List/Series/Array
#Mengambil isinya saja dari kolom sepal length dan sepal width
= iris['sepal_length'].values
length = iris['sepal_width'].values
width print(length, width)
=length, y=width)
sns.scatterplot(x
plt.show()
Dataframe dan kolomnya
=iris['sepal_length'], y=iris['sepal_width'])
sns.scatterplot(x
plt.show()
atau
='sepal_length', y='sepal_width', data=iris)
sns.scatterplot(x
plt.show()
Olah dataframe
=iris)
sns.boxplot(data
plt.show()
Plots
Seaborn memiliki banyak sekali jenis plot dengan fungsi yang berbeda-beda. 5 diantaranya yang akan dibahas pada pertemuan ini :
- Distribution Plot
- Count Plot
- Heatmap
- Scatter Plot
- Box Plot
untuk plot lainnya, silakan telusuri dokumentasi seaborn berikut :
Distribution Plot
'petal_length'])
sns.displot(iris[
plt.show()
'petal_length'].skew() iris[
'sepal_width'])
sns.displot(iris[
plt.show()
'sepal_width'].skew() iris[
'sepal_length'])
sns.histplot(iris[
plt.show()
'sepal_width'])
sns.histplot(iris[
plt.show()
# Histogram kumulatif dari sepal width
'sepal_width'], cumulative=True)
sns.histplot(iris[
plt.show()
Count Plot
#tips dari seaborn
=sns.load_dataset('tips')
tips tips
# Histogram kumulatif dari sepal width
='day', data=tips)
sns.countplot(x
plt.show()
# Histogram kumulatif dari sepal width
=tips['day'])
sns.countplot(x
plt.show()
# Histogram kumulatif dari sepal width
='sex', data=tips, palette='Accent', hue='sex')
sns.countplot(x
plt.show()
# Histogram kumulatif dari sepal width
='day', data=tips, palette='Blues', hue='sex')
sns.countplot(x
plt.show()
# Histogram kumulatif dari sepal width
='sex', data=tips, palette='Blues', hue='day')
sns.countplot(x
plt.show()
#Jika ingin mengammbar dalam sumbu vertikal ya y=
='day', data=tips, palette='Blues', hue='sex')
sns.countplot(y
plt.show()
='sex', data=tips, hue='smoker')
sns.countplot(x
plt.show()
='smoker', data=tips, hue='sex')
sns.countplot(x
plt.show()
Heatmap
'species', axis=1, inplace=True)
iris.drop( iris
= iris.corr()
korelasi_iris korelasi_iris
sns.heatmap(iris.corr())
plt.show()
='YlGnBu')
sns.heatmap(iris.corr(), cmap
plt.show()
='YlGnBu')
sns.heatmap(iris.corr(), cmap
=45)
plt.xticks(rotation
plt.show()
='YlGnBu')
sns.heatmap(iris.corr(), cmap
=45)
plt.yticks(rotation
plt.show()
='YlGnBu')
sns.heatmap(iris.corr(), cmap
=45)
plt.xticks(rotation
=45)
plt.yticks(rotation
plt.show()
>= 0.5)])
sns.heatmap(korelasi_iris[(korelasi_iris
plt.show()
>= 0.5) | (korelasi_iris <= -0.2)])
sns.heatmap(korelasi_iris[(korelasi_iris
plt.show()
>= 0.5) | (korelasi_iris <= -0.2)], annot = True)
sns.heatmap(korelasi_iris[(korelasi_iris
plt.show()
>= 0.5) | (korelasi_iris <= -0.2)], annot = True, cmap='Blues')
sns.heatmap(korelasi_iris[(korelasi_iris
plt.show()
>= 0.5) | (korelasi_iris <= -0.2) ], annot = True, cmap = 'Blues', linewidth = 1, linecolor = 'black')
sns.heatmap(korelasi_iris[(korelasi_iris
plt.show()
Scatter Plot
= sns.load_dataset('iris')
iris iris
='sepal_length', y='sepal_width', data=iris, palette='Accent_r', hue='species')
sns.scatterplot(x
plt.show()
='sepal_length', y='sepal_width', data=iris)
sns.regplot(x
plt.show()
='petal_length', y='petal_width', data=iris)
sns.regplot(x
plt.show()
'petal_length'].corr(iris['petal_width']) iris[
Box Plot
='petal_length', data=iris)
sns.boxplot(x
plt.show()
='sepal_width', data=iris)
sns.boxplot(x
plt.show()
?sns.countplot