Nama : Rahmat Riansyah
NIM : A3202300029
Deskripsi : Tujuan analisis untuk memahami pola dan
hubungan dalam data Angka Harapan Hidup, Pendapatan per Kapita, dan
faktor-faktor lainnya Melalui Pendekatan Univariat, Bivariat,
Multivariat, dan Interaktif.
Sebelum membuat sebuah program di dalam R Markdown kita harus memperhatikan beberapa yang perlu kita persiapkan untuk menunjang isi data beserta visualisasinya.
Hal pertama yang perlu dipersiapkan adalah dengan memanggil beberapa library yang di butuhkan yaitu dengan menginstal di menu Packages dan cara memanggilnya seperti berikut.
library(ggplot2)
library(readr)
library(readxl)
library(gapminder)
library(reshape2)
library(gganimate)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
Selain Library kita juga perlu memanggil Data yang akan kita gunakan dalam pembuatan visualisasi tersebut.Untuk tugas kali ini karena kita menggunakan data Excel dapat mengikuti kode dibawah ini.
Setelah memanggil data yang akan kita gunakan selanjutnya menentukan grafik apa yang akan kita buat secara berbeda.Dari ujian tersebut terdapat 4 minimal visualisasi data seperti berikut:
Grafik univariate digunakan untuk menganalisis distribusi satu variabel tunggal. Grafik ini membantu dalam memahami pola, sebaran, dan karakteristik dari data yang dianalisis.
# Kode untuk histogram dengan palet warna
ggplot(Data, aes(x = Angka_Harapan_Hidup)) + # Menggunakan ggplot untuk membuat grafik, dengan variabel Angka Harapan Hidup di sumbu x
geom_histogram(binwidth = 5, fill = brewer.pal(3, "Blues")[2], color = "black") + # Membuat histogram dengan lebar bin 5, warna isi dari palet "Blues", dan garis tepi hitam
labs(title = "Histogram Angka Harapan Hidup", # Menambahkan judul grafik
x = "Angka Harapan Hidup", # Label sumbu x
y = "Frekuensi") + # Label sumbu y
theme_minimal(base_size = 15) + # Menggunakan tema minimal dengan ukuran font dasar 15
theme(plot.title = element_text(hjust = 0.5)) # Memusatkan judul grafik
Grafik bivariatif digunakan untuk menganalisis hubungan antara dua variabel. Grafik ini membantu dalam mengidentifikasi pola, tren, dan korelasi antara kedua variabel.
# Kode untuk scatter plot dengan transparansi dan ukuran titik
ggplot(Data, aes(x = Pendapatan_per_kapita, y = Angka_Harapan_Hidup)) + # Menggunakan ggplot untuk membuat scatter plot dengan Pendapatan per Kapita di sumbu x dan Angka Harapan Hidup di sumbu y
geom_point(color = "#00bfff", fill = "#000080", size = 1, alpha = 0.7) + # Menambahkan titik dengan warna biru, ukuran 1, dan transparansi 0.7
labs(title = "Pendapatan per Kapita vs Angka Harapan Hidup", # Menambahkan judul grafik
x = "Pendapatan per Kapita", # Label sumbu x
y = "Angka Harapan Hidup") + # Label sumbu y
theme_minimal(base_size = 15) + # Menggunakan tema minimal dengan ukuran font dasar 15
theme(plot.title = element_text(hjust = 0.5)) # Memusatkan judul grafik
Grafik multivariate digunakan untuk menganalisis hubungan antara lebih dari dua variabel. Grafik ini membantu dalam memahami interaksi dan pola yang lebih kompleks dalam data.
# Memastikan library yang diperlukan sudah di-load
library(ggplot2)
library(reshape2)
library(readxl)
# Membaca dataset
Data <- read_excel("Data.xlsx") # Memanggil data dari file Excel
# Memeriksa nama kolom
colnames(Data) # Menampilkan nama kolom untuk memastikan data terbaca dengan benar
## [1] "geo" "Negara" "Benua"
## [4] "Tahun" "Angka_Harapan_Hidup" "Pendapatan_per_kapita"
## [7] "Populasi" "Jumlah_anak"
# Menghapus spasi di sekitar nama kolom (jika ada)
colnames(Data) <- trimws(colnames(Data)) # Menghapus spasi di sekitar nama kolom
# Menghitung rata-rata Angka Harapan Hidup berdasarkan Benua dan Tahun
Data_summary <- aggregate(Angka_Harapan_Hidup ~ Benua + Tahun, data = Data, FUN = mean) # Menghitung rata-rata Angka Harapan Hidup untuk setiap kombinasi Benua dan Tahun
# Mengubah data menjadi format matriks
Data_matrix <- dcast(Data_summary, Benua ~ Tahun, value.var = "Angka_Harapan_Hidup") # Mengubah data summary menjadi format matriks
# Mengubah data matriks menjadi format panjang (long format) untuk ggplot
Data_long <- melt(Data_matrix, id.vars = "Benua", variable.name = "Tahun", value.name = "Angka_Harapan_Hidup") # Mengubah format data untuk keperluan visualisasi
# Mengonversi kolom Tahun menjadi numerik
Data_long$Tahun <- as.numeric(as.character(Data_long$Tahun)) # Mengonversi kolom Tahun menjadi tipe numerik
# Membuat heatmap dengan palet warna yang lebih menarik
ggplot(Data_long, aes(x = Tahun, y = Benua, fill = Angka_Harapan_Hidup)) + # Menggunakan ggplot untuk membuat heatmap dengan Tahun di sumbu x, Benua di sumbu y, dan Angka Harapan Hidup sebagai warna
geom_tile() + # Menggunakan geom_tile untuk membuat heatmap
scale_fill_gradientn(colors = brewer.pal(9, "YlGnBu"), # Menggunakan palet warna dari RColorBrewer untuk mengisi warna
name = "Angka Harapan Hidup") + # Menambahkan label untuk legenda
labs(title = "Heatmap Angka Harapan Hidup per Benua dan Tahun", # Menambahkan judul grafik
x = "Tahun", # Label sumbu x
y = "Benua") + # Label sumbu y
scale_x_continuous(breaks = seq(min(Data_long$Tahun),
max(Data_long$Tahun),
by = 30)) + # Mengatur label sumbu x setiap 30 tahun
theme_minimal(base_size = 13) + # Menggunakan tema minimal dengan ukuran font dasar 13
theme(plot.title = element_text(hjust = 0.5)) # Memusatkan judul grafik
Grafik interaktif memungkinkan pengguna untuk berinteraksi dengan data secara langsung. Ini memberikan pengalaman yang lebih mendalam dan memungkinkan eksplorasi data yang lebih fleksibel.
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Kode untuk grafik interaktif dengan animasi
plot_ly(Data,
x = ~Pendapatan_per_kapita, # Menggunakan Pendapatan per Kapita di sumbu x
y = ~Angka_Harapan_Hidup, # Menggunakan Angka Harapan Hidup di sumbu y
type = 'scatter', # Menentukan jenis grafik sebagai scatter plot
mode = 'markers', # Menentukan mode sebagai marker
marker = list(color = 'rgba(0, 123, 255, 0.8)', size = 10), # Mengatur warna dan ukuran marker
frame = ~Tahun, # Menambahkan frame untuk animasi berdasarkan tahun
ids = ~Negara) %>% # Menggunakan ID unik untuk setiap titik
layout(title = "Interaktif: Pendapatan per Kapita vs Angka Harapan Hidup", # Menambahkan judul grafik
xaxis = list(title = "Pendapatan per Kapita"), # Label sumbu x
yaxis = list(title = "Angka Harapan Hidup")) %>% # Label sumbu y
animation_opts(frame = 100, redraw = TRUE) %>% # Mengatur kecepatan animasi
animation_slider(currentvalue = list(prefix = "Tahun: ")) # Menambahkan slider untuk tahun
Berdasarkan visualisasi yang telah dilakukan, dapat disimpulkan bahwa: