Visualisasi Data dengan Python

Tamara Shafira
5 min readJan 10, 2020

--

Pada era big data dan artificial inteligence, data science, dan machine learning telah menjadi hal yang penting dalam bidang sains dan teknologi. Aspek yang diperlukan dalam hal tersebut adalah kemampuan untuk mendeskripsikan, menyimpulkan, dan memvisualkan data. Statistika library dalam Python lebih luas dan populer untuk digunakan sebagai alat mengolah data.

Kali ini kita akan memvisualisasikan data dengan menggunakan Python. Sebelum itu perlu diketahui fungsi-fungsi pada library yang digunakan

NumPy : sebagai komputasi numerik, mengoptimalkan kerja dari single dan multi dimensi pada himpunan. Digunakan pula dalam statistika analisis

SciPy : Menawarkan fungsionalitas tambahan dibandingkan dengan NumPy, termasuk scipy.stats untuk analisis statistik.

Pandas : Unggul dalam menangani data berlabel satu dimensi (1D) dengan objek Seri dan data dua dimensi (2D) dengan objek DataFrame.

Matplotlib : library yang diperuntukkan sebagai visualisasi. Akan bekerja jika digabungkan dengan NumPy, SciPy, Pandas.

Mari kita mulai,

Buka lebar kerja Python, saya disini memakai Python versi 3.7.2 disarankan untuk tidak menggunakan versi terbaru.

Import library yang sudah disebutkan diawal tadi kedalam lembar kerja, dengan menggunakan perintah:

>>> import numpy as np
>>> import scipy.stats
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> plt.style.use('ggplot')

Dibeberapa kasus, import Matplotlib sering terjadi error, jika tidak bisa install terlebih dahulu Matplotlib.

jika ingin install Matplotlib untuk Python 3 lewat APT package manager, kamu membutuhkan package python3-matplotlib:

sudo apt-get install python3-matplotlib

jika ingin menggunakan install melalui Pip untuk Python 3, kamu perlu menggunakanpip3:

sudo pip3 install matplotlib

Jika masih belum bisa, bisa install melalui salah satu perintah ini,

python -mpip install -U pippython -mpip install -U matplotlib

Kalau masih belum bisa juga, buka file directory C, dan ketikkan

pip install matplotlib

Box Plot

Buat terlebih dahulu data pada lembar kerja Python

Akomodasi = (20, 116, 61, 58, 64,9 )
Kamar = (1503, 10732, 3653, 5206, 2187, 4781, 523)
Bed = 92579, 16418, 6015, 7832, 2885, 6800, 786)

Maka akan terlihat seperti berikut

Sekarang setelah memiliki data untuk dikerjakan, Anda dapat menerapkan .boxplot () untuk mendapatkan boxplot:

fig, ax = plt.subplots()
ax.boxplot((Akomodasi, Kamar, Bed), vert=False, showmeans=True, meanline=True,
labels=('Akomodasi', 'Kamar', 'Bed'), patch_artist=True,
medianprops={'linewidth': 2, 'color': 'blue'},
meanprops={'linewidth': 2, 'color': 'red'})
plt.show()
  • vert mengatur orientasi plot menjadi horizontal saat False. Orientasi default adalah vertikal.
  • showmeans menunjukkan mean ketikaTrue.
  • meanline merepresentasikan mean pada baris ketikaTrue.
  • labels: label data Anda.
  • patch_artist menentukan cara menggambar grafik.
  • medianprops menunjukkan sifat-sifat garis yang mewakili median.
  • meanprops menunjukkan sifat-sifat garis yang mewakili mean.

Maka Box Plot yang terbentuk seperti gambar dibawah ini

  • Mean adalah yang garis berwarna merah.
  • Median adalah garis yang berwarna Biru Tua.
  • Quartil 1 adalah tepi kiri dari persegi panjang biru.
  • Quartil 3 adalah tepi kanan persegi panjang biru.
  • Interquartile adalah panjang dari persegi panjang biru.
  • Range adalah yang memuat semua dari kiri ke kanan.
  • Outliers titik yang berada paling kanan, di luar range.

Histogram

Histogram sangat berguna ketika memiliki angka unik atau angka yang besar dalam dataset. Histogram membagi nilai dari dataset yang diurutkan ke dalam interval.

Copy koding berikut kedalam Python

>>> hist, bin_edges = np.histogram(Kamar, bins=10)
>>> hist
>>> bin_edges
  1. hist berisi frekuensi atau jumlah item.
  2. bin_edges berisi tepi atau batasan pada bin.

Selanjutnya menghitung data untuk dijadikan sebagai histogram

fig, ax = plt.subplots()
ax.hist(Kamar, bin_edges, cumulative=False)
ax.set_xlabel('Kamar')
ax.set_ylabel('Frequency')
plt.show()

Dapat dilihat terdapat jarak antar histogram, hal itu dikarenakan tidak terdapat data pada rang 2000–4000 dan data 6000–9000.

Pie Charts

Pie chart mewakili data dengan jumlah kecil dan memberikan frekuensi yang relatif. Pie chart tidak bisa digunakan jika data bejenis nominal.

Akomodasi, Kamar, Bed= 359, 28585, 43315
>>> fig, ax = plt.subplots()
>>> ax.pie((Akomodasi, Kamar, Bed), labels=('Akomodasi', 'Kamar', 'Bed'), autopct='%1.1f%%')
>>> plt.show()

Didapatkan pie chart seperti berikut,

Variabel Bed yang memiliki persentase paling besar sedangkan yang terkecil variabel Akomodasi dengan nilai persentase 0.5%. Persentase menunjukkan ukuran relatif dari masing-masing nilai dibandingkan dengan jumlah mereka.

X-Y Plots atau Scatter Plot

mewakili pasangan data dari dua set data. Sumbu x horisontal menunjukkan nilai dari himpunan x, sedangkan sumbu y vertikal menunjukkan nilai yang sesuai dari himpunan y. Anda dapat menyertakan garis regresi dan koefisien korelasi.

Copy kodingan berikut kedalam Python:

>>> x = np.arange(21)
>>> y = 3+ 2 * x + 6* np.random.randn(18)
>>> slope, intercept, r, *__ = scipy.stats.linregress(x, y)
>>> line = f'Regression line: y={intercept:.2f}+{slope:.2f}x, r={r:.2f}'

linregress mengembalikan beberapa nilai. Anda membutuhkan slope danintercept dari garis regresi, serta koefisien korelasir. Kemudian Anda bisa memasukkan.plot() untuk mendapatkan plot x-y :

fig, ax = plt.subplots()
ax.plot(x, y, linewidth=0, marker='s', label='Data points')
ax.plot(x, intercept + slope * x, label=line)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.legend(facecolor='yellow')
plt.show()

Hasilnya akan berbentuk seperti ini,

Kotak merah merupakan (x-y) dan garis biru merupakan garis regresi. Dari plot dapat dilihat bahwa titik-titik mengikuti dan mendekati garis linear sehingga dapat disimpulkan bahwa data berasumsi berdistribusi normal. Namun dalam statistika diperlukan pengujian lebih lanjut untuk mendapatkan data berdistribusi normal atau tidak. Uji yang biasanya digunakan adalah uji Kolmogorov-Smirnov dan uji Shapiro-Wilk untuk memastikan model.

Sekian hasil paparan materi yang dapat disampaikan

Terima Kasih,

Tamara Shafira

Referensi:

[1] Mirko Stojiljkovic, Python Statistics Fundamentals: How to Describe Your Data, https://realpython.com/python-statistics/

--

--