Visualisasi Data Menggunakan Python (2)

Tamara Shafira
4 min readJul 12, 2020

--

Assalammualaikum manteman!!

Didalam statistika visualisasi data merupakan hal yang penting. Mengapa demikian? karena data yang sudah diolah akan lebih mudah untuk diinterpretasikan dan dibaca oleh orang awam. Sebelumnya saya sudah pernah menulis visualisasi data dengan python. Kali ini saya akan mencoba kembali visualisasi data, dengan menggunakan data penjualanan game yang saya perolah dari kaggle. Dikarenakan visualisasi tidak dapat menggunakan data yang banyak, maka saya menggunkan 50 data pertama.

Kita akan menggunakan 3 macam library : pandas, matplotlib, dan seaborn.

import pandas as pd
import warnings ##untuk mengabaikan perintah warning pada seaborn
warnings.filterwarnings("ignore")
import seaborn as sns
import matplotlib.python as plt
sns.set(style="white", color_codes=True)

Selanjutnya kita akan memanggil data pada perangkat kompoter kedalam python. Pastikan format file csv (Comma Delimited).

games= pd.read_csv(“D:/video games sales.csv”, sep=”;”)

Oke, setalah berhasil import data kita lanjut visualisasi. Visualisasi pertama menggunakan plot titik.

games.plot(kind="scatter", x="EU_Sales", y="Global_Sales")
Gambar 1 Scatter Plot

Menggunakan variabel Global Sales sebagai Y dan variabel Europe Sales sebagai X, jika kita lihat dari hasil plot, terdapat 1 pencilan (outlier) yang cukup jauh dari rata-rata.

Selanjutnya kita membuat plot yang sedikit mirip dengan menggunakan library dari seaborn.

sns.jointplot(x="EU_Sales", y="Global_Sales", data=games, size=5)
Gambar 2 Scatter Plot dan Histogram

Melalui Gambar 2 sebaran data tidak cukup luas. Jika ditarik garis plot mendekati garis linier. Asumsi ini dapat dikatakan data berdistribusi normal. Namun diperlukan uji lebih lanjut untuk menguatkan asumsi ini. Tapi untuk sekarang kita lanjut ke visualisasi dulu ya…

Selanjutnya kita akan melihat Publisher mana yang dominan dalam penjualanan game.

sns.FacetGrid(games, hue="Publisher", size=5) .map(plt.scatter, "EU_Sales", "Global_Sales") .add_legend()
Gambar 3 Scatter Plot Publisher

Dari plot kita dapat melihat Nintendo (berwarna biru) merupakan Publisher yang paling banyak mengeluarkan game dan memiliki penjualanan game yang cukup tinggi pula, jika dilihat dari plot yang dominan berwarna biru. Sedangkan yang cukup rendah dalam penjualanan game dari Sony Computer Entertainment (berwarna merah).

Kemudian kita membuat boxplot untuk mempermudah analisis deskriptif. Menggunakan Y sebagai Global Sales dan X sebagai Publisher.

sns.boxplot(x="Publisher", y="Global_Sales", data=games)
Gambar 4 Boxplot

Hasil dari Gambar 4 menunjukkan Berdasarkan kelima boxplot diatas garis tengah yang berada dalam box yang merupakan median dari data. Median merupakan nilai pusat atau rata-rata. Jika dibandingkan kelima boxplot menunjukkan bahwa boxplot Nintendo (berwarna biru) memiliki nilai median yang lebih besar dibandingkan boxplot lainnya. Dengan nilai median untuk boxplot 1 sebesar 20. Panjang box yang ditentukan oleh IQR (interquartile range) atau simpangan kuartil. IQR adalah ukuran yang terkenal untuk mengukur penyebaran data. Semakin tinggi (jika boxplot vertikal) atau semakin lebar (jika boxplot horizontal) bidang IQR ini, menunjukkan data semakin menyebar. Berdasarkan hal tersebut terlihat bahwa boxplot Nintendo memiliki sebaran data yang lebih lebar. Terdapat 1 data outlier pada boxplot Nintendo yang melebihi garis batas maximum. Sedangkan Publisher Activition memiliki IQR yang kecil, artinya data memiliki variansi yang kecil.

Kita visualisasikan kembali variabel tersebut menjadi violinplot atau plot biola.

sns.violinplot(x="Publisher", y="Global_Sales", data=games, size=7)
Gambar 5 Violinplot

Tujuan dari violin plot yaitu untuk memudahkan pengguna menganalisis distribusi data yang kontinu untuk setiap kategori. Sesuai dengan KDE, semakin cembung grafik data violin plot yang divisualisasikan maka, kepadatan data peluangnya semakin besar. Melalui Gambar 5 Nintendo memiliki fungsi kepadatan peluang paling kecil, karena memiliki bentuk paling pipih. Sedangkan Activition memiliki fungsi kepadatan peluang paling besar.

Kita lanjut lagi visualisasinya, masih semangat kan ya!!

Sekarang kita coba visualisasi kdeplot (Kernel Desity Estimate). KDE merupakan pendekatan distribusi statistik non paramterik untuk mengestimasikan fungsi distribusi probabilitas dari variabel acak, jika distribusinya tidak diketahui.

sns.FacetGrid(games, hue="Publisher", size=6) .map(sns.kdeplot, "Global_Sales") .add_legend()

Gunakan perintah sns.FacetGrid, size merupakan ukuran plot yang akan ditampilkan. Untuk menambahkan legend atau keterangan pada gambar tambahka add_legend().

Gambar 6 KDEPlot

Berikut ini kita akan mencoba membandingkan antar variabel yang terdapat pada dataset, dengan membentuk Pairplot.

sns.pairplot(games.drop("id", axis=1), hue="Publisher", size=3)
Gambar 7 Pairplot

Plot Gambar 7 menunjukkan korelasi antar variabel yang terdapat pada data. Jika di bandingkan satu per satu antar variabel, data memiliki sebaran yang cukup beragam. Seperti perbandingan penjualanan North America dengan Japan yang memiliki penjualan game yang cukup beragam, sehingga plot yang dihasilkan menyebar luas.

Nah, segitu aja dulu visualisasi data menggunakan Python. Jangan lupa tetap semangat dan jaga kesehatan.

Referensi:

  1. Benhamer, Python Data Visualization, https://www.kaggle.com/benhamner/python-data-visualizations
  2. Herbo, S.H.S. (2019). Tutorial Visualisasi Data Menggunakan Seaborn.
  3. Erwan Setiawan, (2014), Analisis Penggunaan Kernel Density Estimation pada Metode Loss Distribution Approach untuk Resiko Operasional.

--

--

Tamara Shafira
Tamara Shafira

No responses yet