Visualisasi Data
(tool: Python)
Tim Penyusun Materi Pengenalan Teknologi Informasi
Institut Teknologi Bandung © 2018
Objektif
• Mahasiswa memahami latar belakang dan pentingnya visualisasi
data
• Mahasiswa memahami prinsip-prinsip dasar visualisasi data, dan
mampu mengembangkan visualisasi data yang tepat
• Mahasiswa dapat menggunakan grafik yang disediakan Python
library untuk keperluan visualisasi data
29/10/2018 Pengenalan Teknologi Informasi 2
Pentingya Insight
Richard Hamming (1962):
“The purpose of computing is
insight not numbers”
Insight: wawanan/pengertian/pengetahuan yang
mendalam
Chris North:
Data-transfer via Vision vs Ears = 100MB/s : (<100b/s)
29/10/2018 Pengenalan Teknologi Informasi 3
Statistik tidak cukup?
Ref: [6]
29/10/2018 Pengenalan Teknologi Informasi 4
Statistik tidak cukup?
Visualisasi perlu? Anscombe’s Quartet
• Summary statistics mungkin
kehilangan trend penting
• Visualisasi data memudahkan
data anlaysis
• Visualisasi data dapat menampilkan
kerumitan data menjadi sederhana
dan menampilkan berbagai sudut
pandang dari data [Link]
(c) Angela Zoss ([Link]@[Link])
29/10/2018 Pengenalan Teknologi Informasi 5
Kelebihan Visualisasi Data
• Memberikan pengertian komprehensif atas data yang banyak
• Memungkinkan persepsi secara cepat terhadap property atau
karakteristik penting dari data.
• Dapat memperlihatkan secara cepat persoalan yang aa pada data,
misalnya ada nilai data yang tidak masuk akal, outlier, dll
• Memfasilitasi pemahaman terhadap fitur data, baik secara large-
scale maupun small-scale
29/10/2018 Pengenalan Teknologi Informasi 6
Beberapa Definisi
• Visualisasi Data :
• an umbrella term, mengkonversi sumber data ke dalam sebuah
representasi visual
• Visualisasi Saintifik:
• Visualisasi data saintifik yang berhubungan erat dengan objek
dunia-nyata yang memiliki property spasial
• Contoh: visualisasi data gempa, visualisasi arah angin
• Visualisasi Information
• Visualisasi dalam bentuk bagan (chart), grafik, metafora
spasial/visual yang digunakan untuk merepresentasikan
dataset yang tidak memiliki komponen spasial.
• Contoh: visualisasi harga saham, visualisasi perbandingan
jumlah mahasiswa ITB
10/29/2018 SA/IF5170/Pengantar Visualisasi 7
29/10/2018 Pengenalan Teknologi Informasi 7
Data
Contoh
Visualisasi
Saintifik
29/10/2018 Pengenalan Teknologi Informasi 8
Contoh Visualisasi Informasi
Sumber: [Link]
29/10/2018 Pengenalan Teknologi Informasi 9
Data Visualization
Data Visualization:
the representaton and presentation of data
that exploits our visual perception abilities
in order to amplify cognition
(c) Andy Kirk, 2012
10/29/2018 SA/IF5170/Pengantar Visualisasi 10
29/10/2018 Pengenalan Teknologi Informasi 10
Data
Tujuan Visualisasi:
• Visualisasi untuk analisis (a.k.a. “visual analytics”)
• Eksploitasi kekuatan persepsi visual untuk mengekplor atau
menganalisis hubugan antar data
• Biasanya ditampilkan dalam berbagai bentuk atau sudut pandang
visualisasi untuk menemukan hubungan yang diinginkan
• Visualisasi untuk komunikasi
• Memilih view tertentu dari data untuk di-share
• Biasanya dilakukan dengan konstruksi visualisasi dengan tujuan
menjelaskan kepada audiens
(c) Angela Zoss ([Link]@[Link])
29/10/2018 Pengenalan Teknologi Informasi 11
Visualisasi
untuk
Tujuan
Analisis
(Exploratory)
29/10/2018 Pengenalan Teknologi Informasi 12
Visualisasi
untuk
Tujuan
Komunikasi
(Explanatory)
29/10/2018 Pengenalan Teknologi Informasi 13
Tahapan Visualisasi Data
1. Acquire: Obtain the data...
2. Parse: Provide some structure for the data’s meaning, and order it into categories.
3. Filter: Remove all but the data of interest.
4. Mine: Apply methods from statistics or data mining as a way to discern patterns or
place the data in mathematical context.
5. Represent: Choose a basic visual model, such as a bar graph, list, or tree.
6. Refine: Improve the basic representation to make it clearer and more visually engaging.
7. Interact: Add methods for manipulating the data or controlling
what features are visible.
Note: stages are often iterative and may have a flexible order or
even be omitted in some projects.
Fry, B. (2008). Visualizing data. Sebastopol, CA: O’Reilly Media, Inc.
(c) Angela Zoss ([Link]@[Link])
29/10/2018 Pengenalan Teknologi Informasi 14
10/29/2018 14
Tipe Data
• Categorical-Nominal
• Nama negara, warna kulit, nama program studi, dll
• Categorical-Ordinal
• Likert scale (“sangat setuju” s.d. “sangat tidak setuju”)
• Indeks nilai A, B, C, D, E
• Categorical-Binary
• Jenis kelamin, status mahasiswa (aktif, tidak aktif), dll
• Quantitative-Discrete
• Banyaknya anak, banyaknya mahasiswa, banyaknya sks lulus
• Quantitative-Continues
• Usia, berat badan, tinggi, suhu
29/10/2018 Pengenalan Teknologi Informasi 15
Klasifikasi Visualisasi Data
• Perbandingan Kategori (Comparing Categories)
• Penampilan Perubahan Terhadap Waktu (Showing over Times)
• Penampilan Hirarki dan Hubungan Keseluruhan-Bagian (Whole-
part relationship)
• Plotting relationships
• Pemetaan Data Geospatial (tidak dibahas di kuliah ini)
29/10/2018 Pengenalan Teknologi Informasi 16
29/10/2018 Pengenalan Teknologi Informasi 17
Comparing Categories
• Membandingkan nilai-nilai dari suatu variabel bersifat kategorikal
• Contoh: membandingkan jumlah mahasiswa untuk beberapa prodi,
pendapatan per kapita negara-negara di dunia,
• Grafik yang dapat digunakan:
• [Vertical/Horizontal] bar chart/column chart
• Histogram
• Radial chart
• Dot plot
• Dll.
29/10/2018 Pengenalan Teknologi Informasi 18
Comparing categories: Bar chart
• Bar chart/grafik garis: Menggunakan batang vertikal atau
horizontal untuk menunjukkan perbandingan nilai-nilai numerik
pada kategori-kategori tertentu
29/10/2018 Pengenalan Teknologi Informasi 19
Comparing categories: Histogram chart
• Histogram: Memvisualisasikan distribusi data untuk interval-
interval nilai atau periode waktu. Setiap batang pada histogram
merepresentasikan frekuensi data untuk tiap interval.
29/10/2018 Pengenalan Teknologi Informasi 20
Comparing categories: Dot plot
• Dot chart/dot plot : adalah chart di mana titik-titik data di-plot-
kan ke atas skala sederhana,
• Dot plot merupakan alternative dari bar chart untuk
merepresentasikan nilai-nilai kuantitatif berasosiasi dengan
variable kategorikal
29/10/2018 Pengenalan Teknologi Informasi 21
Comparing categories: Radial [bar] chart
• Radial [bar] chart: bar
chart yang diplot di
atas sistem koordinat
polar
• Problem: panjang
batang dapat salah
diinterpretasi
29/10/2018 Pengenalan Teknologi Informasi 22
Penampilan Perubahan Terhadap Waktu
(Showing over Times)
• Visualisasi menampilkan data dalam suatu periode waktu untuk
menemukan trend atau perubahan terkait waktu
• Grafik/chart yang dapat digunakan:
• Line chart
• Area chart + stacked area chart
• Histogram
• Dll.
29/10/2018 Pengenalan Teknologi Informasi 23
Showing over times: Line chart
• Line chart: menggunakan garis yang menghubungkan titik-titik
data untuk menunjukkan perubahan terkait waktu atau interval
nilai tertentu
29/10/2018 Pengenalan Teknologi Informasi 24
Showing over times:
Area Chart + Stacked Area Chart
• Area chart menggunakan
wilayah di bawah garis (seperti
pada line chart) untuk
menyatakan data kuantitatif
terkait waktu
• Stacked Area Chart terdiri atas
beberapa area chart yang
bertumpuk satu di atas yang lain
yang menandakan kategori yang
berbeda
29/10/2018 Pengenalan Teknologi Informasi 25
Penampilan Hierarki dan Hubungan Keseluruhan-
Bagian (Whole-part relationship)
• Hierarki: Menampilkan bagaimana ranking atau urutan data atau
objek dirangking
• Whole-part relationship: menunjukkan proporsi bagian-bagian
pada suatu variabel dari keseluruhannya
• Grafik yang dapat digunakan:
• Pie chart
• Stacked bar chart
• Treemap
• Dll.
29/10/2018 Pengenalan Teknologi Informasi 26
Hierarchy + Whole Part Relationship:
Pie Chart
• Pie chart: menunjukkan proporsi/persentase dari kategori-
kategori dalam suatu variable
29/10/2018 Pengenalan Teknologi Informasi 27
Hierarchy + Whole Part Relationship:
Stacked Bar Chart
• Stacked bar chart: menampilkan bagian-bagian dari total nilai
untuk suatu kategori dalam satu bar/batang
29/10/2018 Pengenalan Teknologi Informasi 28
Hierarchy + Whole Part Relationship:
TreeMap
• Treemap: menunjukkan struktur hierarki dari nilai kuantitatif
melalui ukuran area
29/10/2018 Pengenalan Teknologi Informasi 29
Plotting relationships
• Menunjukkan hubungan-hubungan antar data atau korelasi antara
2 variable atau lebih
• Grafik yang dapat digunakan:
• Scatter plot
• Bubble plot
• Heatmap
• Dll.
29/10/2018 Pengenalan Teknologi Informasi 30
Plotting Relationship: Scatter Plot
• Scatter plot terdiri atas titik-titik nilai yang dipetakan di atas
koordinat x dan y yang merepresentasikan nilai dari 2 variable
• Dapat digunakan untuk menunjukkan korelasi antara kedua
variabel
29/10/2018 Pengenalan Teknologi Informasi 31
Plotting Relationship: Bubble plot
• Bubble plot adalah grafik multi-variable yang memplot nilai-nilai
kuantitatif dalam bentuk lingkaran yang berbeda luasnya.
29/10/2018 Pengenalan Teknologi Informasi 32
Plotting Relationship: Heatmap
• Heatmap digunakan untuk memvisualisasikan data melalui
berbagai variasi warna. Dalam bentuk tabular, heatmap dapat
digunakan untuk memetakan data dari 2 variable atau lebih.
29/10/2018 Pengenalan Teknologi Informasi 33
Matplotlib
• Matplotlib adalah library di
Python yang digunakan untuk
plotting grafik 2 dimensi dalam
berbagai format
• pyplot adalah modul untuk plotting
sederhana dengan interface yang
mirip seperti MATLAB
• Dikembangkan oleh John Hunter
(1968-2012) dan rekan-rekan,
merupakan salah satu library yang
banyak dimanfaatkan untuk
visualisasi data saintifik
29/10/2018 Pengenalan Teknologi Informasi 34
Contoh data-1
• [Link]
• Load pandas dan dataframe dari file [Link]
import pandas as pd
df = pd.read_csv("D:/[Link]")
• Load library [Link] Lebih lanjut fungsi plot pada dataframe:
[Link]
import [Link] as plt docs/stable/generated/[Link]
[Link]
29/10/2018 Pengenalan Teknologi Informasi 35
Bar chart (1)
• Buat vertical bar chart untuk
menampilkan umur dari setiap
orang
import pandas as pd
import [Link] as plt
df = pd.read_csv("D:/[Link]")
[Link](kind="bar",x="name",y="age",title="Age of Person")
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 36
Bar Chart (2)
• Tampilkan banyaknya anak (num_children) dan banyaknya
piaraan (num_pets) dalam 1 grafik vertical bar chart
[Link](kind="bar",x="name",y=["num_children","num_pets"])
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 37
Horizontal Bar Chart
[Link](kind="barh",x="name",y="age",title="Age of Person",
color="red")
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 38
Histogram
• Tampilkan distribusi orang berdasarkan kelompok umur: 0-20;
21-40; 41-60; 61-80; 81-100
df[["age"]].plot(kind="hist",bins=[0,20,40,60,80,100],rwidth=0.8)
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 39
Pie Chart
• Tampilkan komposisi banyaknya orang berdasarkan negara
• Langkah:
• Hitung distribusi frekuensi (lihat bahan kuliah sebelumnya)
• Plot ke pie chart
df2 = df["state"].value_counts()
[Link](kind = "pie")
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 40
Stacked Bar Chart (1)
• Tampilkan data banyaknya data per jenis kelamin (gender) per
negara bagian (state)
• Langkah:
1. Membuat tabel pivot: menggunakan perintah group by,
kelompokkan data terlebih dahulu
Misalnya: group by berdasarkan kolom gender, state, lalu count banyaknya
data (misal berdasarkan kolom name)
df3 = [Link](["gender","state"])["name"].size().unstack()
df3
29/10/2018 Pengenalan Teknologi Informasi 41
Stacked Bar Chart (2)
• Langkah:
2. Plot df3 ke bar chart dan stacked = True
[Link](kind="bar",stacked=True)
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 42
Stacked Bar Chart (3)
• Tampilkan banyaknya anak
(num_children) dan banyaknya
piaraan (num_pets) dalam 1 grafik
stacked bar chart
[Link](kind = "bar", x = "name",
y=["num_children","num_pets"],
stacked = True)
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 43
Contoh Data-2: Time-series
• [Link]
• Load data:
df1 = pd.read_csv("D:/[Link]")
29/10/2018 Pengenalan Teknologi Informasi 44
Line Chart (1)
• Tampilkan pertumbuhan populasi beruang (Bears) dari tahun ke
tahun dalam line chart
[Link](kind="line",x="Year",y="Bears")
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 45
Line Chart (2)
• Tampilkan pertumbuhan populasi
beruang (Bears), lumba-lumba
(Dolphins), dan ikan paus
(Whales) dari tahun ke tahun
dalam 1 line chart
[Link](kind="line",x="Year",
y=["Bears","Dolphins","Whales"])
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 46
Area Chart
• Tampilkan pertumbuhan populasi
lumba-lumba (Dolphins) dari
tahun ke tahun dalam area chart
[Link](kind="area",x="Year",
y="Dolphins")
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 47
Stacked Area Chart
• Tampilkan pertumbuhan populasi
beruang (Bears), lumba-lumba
(Dolphins), dan ikan paus
(Whales) dari tahun ke tahun
dalam stacked area chart
[Link](kind="area",x="Year",
y=["Bears","Dolphins","Whales"])
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 48
Contoh Data-3: medali Asian Games
• Kembali ke contoh pada materi kuliah sebelumnya: file [Link]
• Load data:
df4 = pd.read_csv("D:/[Link]")
29/10/2018 Pengenalan Teknologi Informasi 49
Scatter Plot
• Tampilkan relationship antara
variable gold dan total dalam
grafik scatter plot dan
tunjukkan adanya korelasi
positif
[Link](kind="scatter",
x="gold", y="total")
Alternatif:
[Link](x="gold",
y="total")
[Link]
29/10/2018 Pengenalan Teknologi Informasi 50
Bubble Plot
• Tampilkan banyaknya total medali
dikaitkan dengan perolehan nilai
medali emas (gold) pada sumbu x
dan perolehan medali perak (silver)
pada sumbu y dalam grafik bubble
plot
• Bubble plot di Python dibuat
berdasarkan scatter plot
[Link](kind="scatter",x="gold",
y="silver",sizes=df4["total"],
color="orange")
[Link]()
29/10/2018 Pengenalan Teknologi Informasi 51
Menyimpan grafik ke file
[Link](kind="bar",x="name",y="age",title="Age of Person")
[Link]("D:/[Link]")
29/10/2018 Pengenalan Teknologi Informasi 52