library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.3 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggridges)
library(treemap)
## Warning: package 'treemap' was built under R version 4.3.2
library(treemapify)
## Warning: package 'treemapify' was built under R version 4.3.2
library(ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.3.2
library(GGally)
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
##
## Attaching package: 'GGally'
##
## The following object is masked from 'package:ggmosaic':
##
## happy
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.2
##
## 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
library(readxl)
data<- read.csv("C:/Users/LENOVO/OneDrive/Documents/Visdat/Jam Kerja.csv")
data1<- read.csv("C:/Users/LENOVO/OneDrive/Documents/Visdat/Penggunaan Rokok Elektrik.csv")
data2<- read.csv("C:/Users/LENOVO/OneDrive/Documents/Visdat/Umur Responden.csv")
data3<- read.csv("C:/Users/LENOVO/OneDrive/Documents/Visdat/Jumlah Jam Seluruh Pekerjaan.csv")
data4<- read.csv("C:/Users/LENOVO/OneDrive/Documents/Visdat/Jenis Kelamin Responden.csv")
data5<- read.csv("C:/Users/LENOVO/OneDrive/Documents/Visdat/Status Perkawinan.csv")
VISUALISASI BESARAN
data %>%
count(Jumlah.Jam.Kerja.Utama) %>%
slice_max(n = 5, order_by = n) %>%
ggplot() +
geom_col(aes(x = fct_reorder(as.factor(Jumlah.Jam.Kerja.Utama), n), y = n), fill = "blue", width = 0.7) +
geom_text(aes(x = fct_reorder(as.factor(Jumlah.Jam.Kerja.Utama), 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("Peringkat 5 Jumlah Jam Pekerjaan Utama Dalam Seminggu") +
xlab("Jumlah Jam dalam Seminggu") +
ylab("") +
theme_classic() +
theme(plot.title = element_text(hjust = 0.5, size = 15))
Bar chart di atas menjelaskan mengenai Top 5 atau Peringkat 5 jumlah jam
pekerjaan utama dalam seminggu yang paling banyak di lakukan masyarakat.
Kebanyakan responden mengisi 0 dengan jumlah 46465 orang, yang berarti
responden tidak bekerja/belum bekerja, selanjutnya jumlah jam kerja
selama 48 jam ada 6297 orang, 40 jam 3100 orang, 56 jam 3025 orang, dan
42 jam sebanyak 2922 orang.
data1 %>%
count(Penggunaan.Rokok.Elektrik) %>%
arrange(desc(n)) %>%
ggplot() +
geom_segment(aes(x = fct_reorder(as.factor(Penggunaan.Rokok.Elektrik), n), xend = fct_reorder(as.factor(Penggunaan.Rokok.Elektrik), n), y = 0, yend = n), color = "blue") +
geom_point(aes(x = fct_reorder(as.factor(Penggunaan.Rokok.Elektrik), n), y = n), color = "red", size = 2) +
geom_text(aes(x = fct_reorder(as.factor(Penggunaan.Rokok.Elektrik), 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("Penggunaan Rokok Elektrik Selama Sebulan Terakhir") +
xlab("Respon") +
ylab("Jumlah Penduduk") +
theme_light()
theme(plot.title = element_text(hjust = 0.5))
## List of 1
## $ plot.title:List of 11
## ..$ family : NULL
## ..$ face : NULL
## ..$ colour : NULL
## ..$ size : NULL
## ..$ hjust : num 0.5
## ..$ vjust : NULL
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi FALSE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## - attr(*, "class")= chr [1:2] "theme" "gg"
## - attr(*, "complete")= logi FALSE
## - attr(*, "validate")= logi TRUE
Lollipop chart di samping menjelaskan mengenai penggunaan rokok elektrik dalam seminggu terakhir, kebanyakan responden tidak menggunakan rokok elektrik dengan jumlah 76781 orang, lalu yang kedua responden menjawab tidak tahu dengan jumlah 6759 orang, dan sisannya responden menjawab Ya dengan jumlah 148 orang.
VISUALISASI SEBARAN
ggplot(data3)+
geom_histogram(aes(x= Jumlah.Jam.Seluruh.Pekerjaan),fill="green", color="cornsilk", alpha=0.8)+
labs(title="Histogram Sebaran Jam Kerja pada Seluruh Pekerjaan ")+
xlab("Jumlah Jam Seluruh Pekerjaan")+
ylab("Jumlah")+
xlim(1,100)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 46465 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
Histogram di atas menjelaskan mengenai sebaran jam kerja pada seluruh
pekerjaan, didapatkan histogram tersebut termasuk histogram bimodal
karena memiliki dua puncak yang mengindikasikan keberadaan dua kelompok
interval jam kerja per minggu pada mayoritas sampel penduduk Jawa Barat.
Rentang jam kerja tersebut berkisar antara 30 hingga 55 jam per minggu
dan 60 hingga 70 jam per minggu.
ggplot(data2)+
geom_density(aes(x= Umur.Responden),fill="blue", color="cornsilk", alpha=0.8)+
labs(title="Density Plot Umur Responden")+
xlab("Umur")+
ylab("Jumlah")+
xlim(17,100)
## Warning: Removed 24055 rows containing non-finite values (`stat_density()`).
Pada plot density di atas, terdapat dua puncak yang menunjukkan adanya
dua kelompok mayoritas penduduk yang menikah pertama kali pada umur
tertentu, yakni pada usia 17 dan 40 tahun. Sedangkan untuk kelompok
lainnya, distribusinya tersebar mulai dari usia 17 hingga 90 tahun.
data <- data3
data <- data3 %>% filter(Jumlah.Jam.Seluruh.Pekerjaan > 0)
ggplot(data)+
geom_boxplot(aes(y=Jumlah.Jam.Seluruh.Pekerjaan))+
labs(title="Boxplot Sebaran Jam Kerja Seluruh Pekerjaan dalam Seminggu")
Boxplot di atas dapat dilihat bahwa nilai median dari variabel “Jam
Kerja Seluruh Pekerjaan dalam Seminggu” ada di sekitar 48 jam per
minggu. Kuartil atas terletak pada sekitar 57 jam per minggu, sementara
kuartil bawah terletak sekitar 35 jam per minggu. Rentang (range) atas
dari nilai-nilai adalah sekitar 95 jam, sedangkan rentang bawahnya
adalah 0 jam (menunjukkan tidak adanya pekerjaan). Terdapat pencilan
atas di atas 87 jam.
VISUALISASI KOMPOSISI
data4$Jenis.Kelamin.Responden <- as.numeric(data4$Jenis.Kelamin.Responden)
data_pie <- data4 %>%
mutate(Jenis.Kelamin.Responden = ifelse(Jenis.Kelamin.Responden == 1, "Laki-laki", "Perempuan")) %>%
count(Jenis.Kelamin.Responden) %>%
mutate(percentage = prop.table(n) * 100)
ggplot(data_pie, aes(x = "", y = percentage , fill = Jenis.Kelamin.Responden)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
scale_fill_brewer(palette = "Set3") +
theme_void() +
theme(legend.position = "right") +
labs(title = "Komposisi Jenis Kelamin Responden", fill = "Jenis Kelamin") +
geom_text(aes(label = paste0((percentage), "%")), position = position_stack(vjust = 0.5))
Pie Chart di atas menjelaskan mengenai komposisi jenis kelamin
responden, didapatkan jenis kelamin Laki-laki di angka 50,4% dan jenis
kelamin perempuan di angka 49,6%.
data5 <- data.frame(
status=c("Belum Kawin", "Kawin", "Cerai Hidup", "Cerai Mati"),
count=c(35894, 42331, 1852, 4615)
)
data5$fraction = data5$count / sum(data5$count)
data5$ymax = cumsum(data5$fraction)
data5$ymin = c(0, head(data5$ymax, n=-1))
ggplot(data5, aes(ymax=ymax, ymin=ymin, xmax=3, xmin=2, fill=status)) +
geom_rect() +
coord_polar(theta="y") +
xlim(c(0, 5)) +
theme_classic()
Donut Chart di atas menjelaskan mengenai status perkawinan setiap
responden, didapatkan kebanayakan statusnya kawin, lalu di susul oleh
status belum kawin lalu sisanya berstatus cerai mati dan cerai
hidup.