Tugas 1 Praktikum Visualisasi Data

Anindya Septyani G1401221074

Visualisasi Besaran

library(tidyverse) 
library(ggridges)
library(GGally) 
library(plotly)
install.packages("ggplot2")
library(ggplot2)
install.packages("dplyr")
library(dplyr)

Input Data untuk Visualisasi Besaran

library(readxl)
databesaran <- read_excel("C:/Users/Lenovo/Downloads/data visdat.xlsx")
View(databesaran)

Menghapus Data “Tidak Berlibur” pada kolom R904

library(readxl)
databesaranfilterred <- read_excel("C:/Users/Lenovo/Downloads/data visdat.xlsx")
databesaran <- databesaran[databesaran$R904 != "Tidak berlibur",]

1. Bar Chart

library(ggplot2)
ggplot(databesaran, aes(x = R904)) +
  geom_bar(fill = "burlywood1") + 
  labs(title = "Kegiatan Mengisi Liburan (1 Juli - 31 Desember 2023", x = "Kegiatan Liburan", y = "Jumlah Orang") +
  theme_classic() +
  coord_flip()

Chart “Kegiatan Mengisi Liburan (1 Juli - 31 Desember 2023)” memberikan gambaran visual yang informatif terkait sebaran aktivitas orang dalam berbagai kegiatan liburan. Data untuk Chart ini diperoleh dari kolom R904 dalam dataset SUSENAS.

Top 5 Aktivitas Liburan (1 Juli - 31 Desember 2023)

library(dplyr)
library(forcats)
databesaran %>% 
  count(R904)%>%
  slice_max(n = 5, order_by = n) %>% 
  ggplot() +
  geom_col(aes(x=fct_reorder(as.factor(R904), n), y=n), fill = "deeppink", width = 0.4) +
  geom_text(aes(x=fct_reorder(as.factor(R904), n), y=n, label = n), 
            position = position_stack(vjust = 0.5), color = "black", size = 3) + 
  scale_y_continuous(expand = c(0,0)) +
  coord_flip() + 
  ggtitle("Top 5 Aktivitas Liburan (1 Juli - 31 Desember 2023)") + 
  labs(title = "Top 5 Aktivitas Liburan (1 Juli - 31 Desember 2023)", x = "Kegiatan Liburan", y = "Jumlah Orang")


Bar Chart Top 5 Aktivitas Liburan menggambarkan sebaran partisipasi dalam berbagai kegiatan liburan dengan jelas. Kegiatan paling populer adalah “mengunjungi teman/keluarga” yang diikuti oleh 17,981 orang, menunjukkan bahwa aspek sosial dan hubungan personal memiliki dampak besar dalam keputusan liburan. Di peringkat kedua, aktivitas berlibur menarik 9,628 orang, menggambarkan minat yang signifikan dalam kegiatan rekreasi.

Pulang kampung menempati peringkat ketiga dengan partisipasi sebanyak 3,525 orang, menunjukkan bahwa keinginan untuk kembali ke akar dan bersilaturahmi dengan keluarga masih tetap kuat. Berziarah berada di peringkat keempat, diikuti oleh kesehatan atau berobat, masing-masing diikuti oleh 1,269 dan 670 orang.

Dengan rangking ini, kita dapat melihat bahwa masyarakat cenderung memberikan prioritas kepada kegiatan yang berkaitan dengan hubungan sosial dan kebahagiaan keluarga. Hasil ini memberikan wawasan yang berharga tentang preferensi dan nilai-nilai yang mungkin menjadi pendorong utama dalam memilih kegiatan liburan.

2. Lollipop Chart

library(dplyr)
library(forcats)
databesaran %>%
  count(R904) %>%
  arrange(desc(n)) %>% # gunakan arrange(n) untuk mengurutkan sebaliknya
  ggplot() +
  geom_segment(aes(x = fct_reorder(as.factor(R904), n), xend = fct_reorder(as.factor(R904), n), y = 0, yend = n), color = "pink") +
  geom_point(aes(x = fct_reorder(as.factor(R904), n), y = n), color = "blueviolet", size = 2.5) +
  scale_y_continuous(expand = c(0, 0)) +
  coord_flip() +
  ggtitle("Jumlah Rumah Setiap Kota") +
 labs(title = "Kegiatan Mengisi Liburan (1 Juli - 31 Desember 2023)", x = "Kegiatan Liburan", y = "Jumlah Orang")

Berikut merupakan lollipop chart yang menampilkan kegiatan liburan dengan periode 1 Juli hingga 31 Desember 2023. Dapat terlihat urutannya mulai dari yang tertinggi adalah Mengunjungi teman/keluarga, disusul Berlibur/rekreasi lalu Mudik/Pulang kampung.

Visualisasi Sebaran

Input data untuk Visualisasi Sebaran

library(readxl)
datasebaran <- read_excel("C:/Users/Lenovo/Downloads/data visdat.xlsx", sheet = 2)
View(datasebaran)

1. Density Plot

library(ggplot2)
ggplot(datasebaran, aes(x = R406C)) +
  geom_density(fill = "azure1", alpha = 0.7) +  #
  ggtitle("Density Plot Sebaran Tahun Kelahiran") +
  xlab("Tahun Kelahiran") +
  ylab("Kepadatan")

Density Plot membantu menggambarkan distribusi tahun kelahiran, dan memungkinkan untuk mengidentifikasi pola sebaran pada rentang waktu tertentu. Puncak kurva density memberikan informasi tentang kelompok tahun kelahiran yang paling banyak dalam populasi. Semakin tinggi puncaknya, semakin banyak orang yang lahir pada rentang tahun tersebut. Dapat terlihat bahwa puncak tertinggi dalam density plot berada pada rentang tahun 2000-2025, yang menunjukkan bahwa pada rentang tahun tersebut terdapat jumlah kelahiran tertinggi dalam populasi yang diamati.

2. Boxplot

library(ggplot2)
ggplot(datasebaran) + 
  geom_boxplot(aes(y=R406C), fill = "deeppink") +
  labs(title = "Boxplot Sebaran Tahun Kelahiran", y = "Tahun Kelahiran")

Berikut hasil Boxplot untuk sebaran tahun kelahiran. Rentang tahun 1975-2000 menunjukkan adanya kelahiran yang terdistribusi luas dalam populasi yang diamati. Panjang kotak mencerminkan sebaran interkuartil dan dapat memberikan gambaran tentang seberapa banyak kelahiran dalam rentang tahun kelahiran 1975 - 2000

Visualisasi Komposisi

Input data untuk Visualisasi Komposisi

library(readxl)
datakomposisi <- read_excel("C:/Users/Lenovo/Downloads/data visdat.xlsx", sheet = 4)
View(datakomposisi)
library(tidyverse) 
library(ggmosaic)
library(treemap)
library(treemapify)
library(ggridges)
library(GGally) 
library(plotly) 

1. Pie Chart

data <- data.frame(
  R404 = c("Belum kawin", "Kawin", "Cerai hidup", "Cerai mati"),
  count = table(cut(datakomposisi$R404, breaks=c(0,1,2,3,4), labels=c("1", "2", "3", "4")))
)

ggplot(data, aes(x = "", y = count.Freq , fill = R404)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  scale_fill_brewer(palette = "Set4") +
  theme_void() +
  theme(legend.position = "right") +
  labs(title = "Komposisi Status Perkawinan", fill = "Status Perkawinan") +
  geom_text(aes(label = count.Freq), position = position_stack(vjust = 0.5))

Diagram pie chart di atas memberikan gambaran komposisi status perkawinan dalam populasi yang diamati. Data tersebut menunjukkan bahwa mayoritas individu berstatus perkawinan “Kawin” dengan jumlah sebanyak 42,330 orang. Disusul oleh status perkawinan “Belum Kawin” yang mencapai 35,893 orang, menunjukkan proporsi yang signifikan dari populasi yang belum menikah.

Sebaliknya, status perkawinan “Cerai Hidup” menunjukkan jumlah yang lebih kecil, hanya terdapat 1,851 orang. Meskipun merupakan bagian terkecil dari diagram, informasi ini tetap penting karena memberikan gambaran tentang sebaran status perkawinan yang beragam dalam populasi yang diamati.

2. Diagram Donat

table(datakomposisi$R404)
## 
##     1     2     3     4 
## 35893 42330  1851  4614
data <- data.frame(
  category=c("Belum kawin", "Kawin", "Cerai hidup", "Cerai mati"),
  count=c(35893, 42330, 1851 , 4614)
)
 
data$fraction = data$count / sum(data$count)
data$ymax = cumsum(data$fraction)
data$ymin = c(0, head(data$ymax, n=-1))
 
ggplot(data, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=3, fill=category)) +
    geom_rect() +
    coord_polar(theta="y") +
    scale_fill_brewer(palette = "set 4") +
    xlim(c(2, 4)) +
    theme_classic()

Dapat terlihat bahwa ukuran lingkaran donat merepresentasikan keseluruhan populasi, dan setiap sektor menggambarkan proporsi dari total tersebut. Mayoritas individu memiliki status perkawinan “Kawin”, mencapai 42,330 orang atau proporsi tertinggi dalam diagram.