Pertemuan 3 : Simple Data Visualization (matplotlib)

Data visualization in python using matplotlib (pyplot)
Published

April 23, 2024

Kembali ke EDA

Matplotlib (Pyplot)

Matplotlib adalah library yang digunakan untuk visualisasi data. Hasil visualisasi data matplotllib menyerupai hasil visualisasi pada bahasa pemrograman matlab. Library ini bukanlah cara yang paling mudah untuk menghasilkan visualisasi data, tetapi visualisasi yang dihasilkan fleksibel dan dapat digunakan untuk banyak sekali kasus.


Download dataset

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Import Dataset
df = pd.read_csv('https://raw.githubusercontent.com/farhanage/dataset-for-study/main/insurance.csv')

# Cek 5 observasi pertama
df.head()
# melihat informasi mengenai tiap variabel
df.info()
# statistik deskritif semua variabel numerik
df.describe()

Box Plot

# Box Plot variabel `age`
plt.boxplot(x='age', data=df)

# Menambahkan Judul Plot
plt.title("Box Plot")
 
# Menambahkan label sumbu X dan Y
plt.xlabel('Age')
plt.ylabel('Value')

# Menunjukkan plot
plt.show()
# Box Plot variabel `bmi`
plt.boxplot(x='bmi', data=df)

# Menambahkan Judul Plot
plt.title("Box Plot")
 
# Menambahkan label sumbu X dan Y
plt.xlabel('bmi')
plt.ylabel('Value')

# Menunjukkan plot
plt.show()
Note

Seperti halnya penggunaan syntax ? pada bahasa pemrograman R, kita dapat mengakses dokumentasi suatu fungsi dalam suatu modul pada python dengan menggunakan function help()

# Melihat dokumentasi mengenai function plt.boxplot()
help(plt.boxplot)

Histogram

# Histogram variabel `bmi`
plt.hist(x='bmi', data=df)

# Menambahkan Judul Plot
plt.title("Histogram")
 
# Menambahkan label sumbu X dan Y
plt.xlabel('bmi')
plt.ylabel('Count')

# Menunjukkan plot
plt.show()

Bar Chart

# Hitung banyaknya responden dari masing-masing gender
df['sex'].value_counts()
# Bar chart jumlah tiap jenis kelamin
df['sex'].value_counts().plot(kind='bar')

# Menambahkan Judul Plot
plt.title("Bar Chart")
 
# Menambahkan label sumbu X dan Y
plt.xlabel('sex')
plt.ylabel('count')

# Menunjukkan plot
plt.show()

Horizontal Bar Chart

# Horizontal Bar chart jumlah tiap jenis kelamin
df['sex'].value_counts().plot(kind='barh')

# Menambahkan Judul Plot
plt.title("Bar Chart")
 
# Menambahkan label sumbu X dan Y
plt.xlabel('count')
plt.ylabel('sex')

# Menunjukkan plot
plt.show()

Pie Chart

# Pie chart persentase sebaran region seluruh responden
df['region'].value_counts().plot(kind='pie', autopct='%1.1f%%')

# Menambahkan Judul Plot
plt.title("Pie Chart")

# Menunjukkan plot
plt.show()

Scatter Plot

# Scatter plot variabel `age` dan `charges`
df.plot(kind='scatter', x='age', y='charges')

# Menambahkan Judul Plot
plt.title("Scatter Plot `Age` vs `Charges`")
 
# Menambahkan label sumbu X dan Y
plt.xlabel('Age')
plt.ylabel('Charges')

# Menunjukkan plot
plt.show()

Untuk plot lainnya, silakan telusuri dokumentasi dari library matplotlib yang dapat diakses pada link berikut : Dokumentasi matplotlib.pyplot

Subplots

Figure and Axes

Pembuatan suatu plot menggunakan library matplotlib akan menghasilkan suatu figure yang memiliki beberapa komponen di dalamnya.

Berikut cara membuat suatu figure menggunakan matplotlib

fig = plt.figure()  # an empty figure with no Axes

plt.show()

Figure kosong tidak dapat divisualisasikan. Untuk membuat suatu figure yang memiliki axes, gunakan function plt.subplots()

fig, ax = plt.subplots()  # a figure with a single Axes

plt.show()

Bagaimana jika kita ingin membuat gabungan dari beberapa Axes dalam 1 figure?

function subplots menerima parameter jumlah baris dan jumlah kolom untuk membentuk suatu grid yang terdiri atas 1 atau lebih axes

fig, axs = plt.subplots(2, 2)  # a figure with a 2x2 grid of Axes

plt.show()

Selain dengan function subplots, ada juga function subplot_mosaic yang akan menghasilkan axes dengan ukuran yang lebih bervariasi.

# a figure with one axes on the left, and two on the right:
fig, axs = plt.subplot_mosaic([['left', 'right_top'],
                               ['left', 'right_bottom']])

plt.show()

Plots

Untuk menambahkan plot pada tiap axis, gunakan function-function plot pada axis dengan index yang bersesuaian.

fig, axs = plt.subplots(2, 2, layout="constrained")

axs[0,0].hist(df['age'])

axs[0,0].set_title('Variabel `Age`')

axs[0,1].hist(df['bmi'])

axs[0,1].set_title('Variabel `bmi`')

axs[1,0].hist(df['children'])

axs[1,0].set_title('Variabel `children`')

axs[1,1].hist(df['charges'])

axs[1,1].set_title('Variabel `charges`')

fig.suptitle('Histogram Variabel Numerik')

plt.show()

Lebih lanjut, silakan baca dokumentasi dari plt.subplot pada link berikut : Dokumentasi plt.subplots