library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'stringr' 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.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ 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)
## Warning: package 'ggridges' 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
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(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
##
## Attaching package: 'ggmosaic'
##
## The following object is masked from 'package:GGally':
##
## happy
data <- read.csv("C:/Users/ASUS/OneDrive/Documents/SEM 4/VISDAT/data visdat individu praktikum.csv", header = TRUE, sep=",")
str(data)
## 'data.frame': 84688 obs. of 19 variables:
## $ JK : int 2 2 2 1 2 1 1 2 2 1 ...
## $ RPM : int 0 0 0 0 0 35 49 0 0 112 ...
## $ UHP : int 0 23 0 0 0 0 0 22 0 0 ...
## $ GE : int 8 8 8 8 8 8 8 8 8 8 ...
## $ DK : int 2 2 2 2 1 1 2 2 2 1 ...
## $ R102 : int 7 7 7 7 72 72 6 6 6 72 ...
## $ ratarata_RPM: num 0.677 36.648 NA NA NA ...
## $ DK.1 : chr "Kota" "Desa" "" "" ...
## $ frek_R105 : int 27482 50206 NA NA NA NA NA NA NA NA ...
## $ JK.1 : chr "Laki-Laki" "Perempuan" "" "" ...
## $ frek_R405 : int 42723 41967 NA NA NA NA NA NA NA NA ...
## $ TP : chr "SD/Sederajat" "Diploma" "SMA/Sederajat" "SD/Sederajat" ...
## $ R1007 : int 5 6 7 8 NA NA NA NA NA NA ...
## $ frek_R1007 : int 51 111 511 81983 NA NA NA NA NA NA ...
## $ R1052 : chr "Kota" "Pedesaan" "" "" ...
## $ R105 : chr "Kota" "Kota" "Desa" "Desa" ...
## $ R405 : chr "Laki-Laki" "Perempuan" "Laki-Laki" "Perempuan" ...
## $ rerata_RPM : num 33.392 0.687 43.418 0.656 NA ...
## $ FWT : num 455 455 455 455 172 ...
data_bar <- subset(data, select = c(TP))
data_barnoblank <- subset(data_bar, !(TP %in% c("")))
str(data_barnoblank)
## 'data.frame': 74901 obs. of 1 variable:
## $ TP: chr "SD/Sederajat" "Diploma" "SMA/Sederajat" "SD/Sederajat" ...
data_barnoblank%>%count(TP)%>%
ggplot()+
geom_col(aes(x=fct_reorder(as.factor(TP),n),y=n), fill="pink",
width=0.7) +
geom_text(aes(x = fct_reorder(as.factor(TP), n), y = n, label = n),
position = position_stack(vjust = 0.8), color = "black", size = 3) +
scale_y_continuous(expand = c(0,0))+
coord_flip() +
ggtitle("Tingkat Pendidikan Warga Jabar") +
xlab("") +
ylab("Frekuensi") +
theme_classic() +
theme(plot.title = element_text(hjust = .5, size = 15))
# Berdasarkan grafik bar chart di atas, tingkat pendidikan SD/Sederajat
adalah tingkat pendidikan terbanyak yang terakhir ditempuh oleh warga
Jawa Barat. Sedangkan tingkat pendidikan Profesi adalah tingkat
pendidikan yang paling sedikit telah ditempuh. Bar chart tersebut sudah
diurutkan berdasarkan tingkat pendidikan yang paling banyak sudah di
tempuh oleh warga Jawa Barat pada tahun 2023.
data_stacked <- data %>%
filter(R405 %in% c("Laki-Laki", "Perempuan")) %>%
filter(R105 %in% c("Kota", "Desa"))
ggplot(data_stacked, aes(x = as.factor(R105), y = rerata_RPM, fill = as.factor(R405))) +
geom_bar(stat = "identity") +
labs(fill = "Jenis Kelamin") +
ggtitle("Rata-Rata Konsumsi Rokok Perminggu Berdasarkan Jenis Kelamin dan Klasifikasi Geografi") +
xlab("Klasifikasi") +
ylab("Rata Rata") +
scale_fill_manual(values = c("Perempuan" = "pink", "Laki-Laki" = "lightblue")) +
theme_minimal()
# Baik pada kota maupun desa, mayoritas perokok adalah laki-laki karena
terlihat dari komposisi warna biru yang mendominasi, sedangkan warna
pink yang menjadi minoritas menggambarkan banyaknya perempuan perokok.
Namun, terdapat perbedaan rata-rata batang roko perminggu yang
dikonsumsi antara laki-laki yang tinggal di kota dan tinggal di Desa.
Perbedaan tersebut mencapai >10 batang lebih besar rata-rata batang
rokok perminggu yang dikonsumsi di desa dibanding dengan kota.
ggplot(data)+
geom_histogram(aes(x= UHP),fill="pink", color="black", alpha=0.8)+
labs(title="Histogram Sebaran Umur Hamil Pertama di Jawa Barat")+
xlab("Umur")+
ylab("Jumlah")+
xlim(10,40)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 66764 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
# Umur hamil pertama paling umum terdapat pada interval 18 sampai 20
karena histogram mencapai puncak pada interval tersebut. Persebaran yang
dimiliki histogram adalah cenderung menjulur ke kanan.
ggplot(data)+
geom_density(aes(x=UHP,fill= "Jawa Barat" ),color="#e9ecef", alpha=0.4)+
labs(title="Density Plot Sebaran Umur Hamil Pertama di Jawa Barat")+
xlab("Umur Hamil Pertama")+
ylab("Umur")+
xlim(10,40)
## Warning: Removed 66764 rows containing non-finite values (`stat_density()`).
# Interpretasi dari density plot ini kurang lebih sama dengan histogram
sebelumnya. Karena pada dasarnya kedua grafik tersebut menjelaskan
persebaran dari sebuah data. Namun, pada density plot, titik puncak
sangat tergambar jelas, yaitu pada angka 20.
data_pie <- data %>%
mutate(DK = ifelse(DK == 1, "Kota", "Desa")) %>%
count(DK) %>%
mutate(percentage = prop.table(n) * 100)
ggplot(data_pie, aes(x = "", y = percentage , fill = DK)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
scale_fill_manual(values = c("pink", "lightblue")) +
theme_void() +
theme(legend.position = "right") +
labs(title = "Komposisi Lokasi Tinggal Warga Jabar 2023", fill = "Lokasi") +
geom_text(aes(label = paste0(round(percentage), "%")), position = position_stack(vjust=0.5))
# Pie Chart menunjukan komposisi warga Jawa Barat yang tinggal di kota
dan di desa. Ternyata, warga yang berlokasi di kota mendominasi sebesar
68%. Menunjukan bahwa lebih banyak warga yang tinggal di kota
dibadingkan dengan tinggal di desa.
data_tree <- subset(data, select = c(TP, JK, RPM))
data_treenoblank <- subset(data_tree, !(TP %in% c("")))
str(data_treenoblank)
## 'data.frame': 74901 obs. of 3 variables:
## $ TP : chr "SD/Sederajat" "Diploma" "SMA/Sederajat" "SD/Sederajat" ...
## $ JK : int 2 2 2 1 2 1 1 2 2 1 ...
## $ RPM: int 0 0 0 0 0 35 49 0 0 112 ...
treemap(data_treenoblank,
index=c("TP", "JK"),
vSize="RPM",
draw=TRUE,
title="Rerata Konsumsi Rokok berdasarkan Tingkat Pendidikan dan Lokasi Tinggal",
palette = "Set2",
fontsize.title=15,
fontsize.labels=,
fontcolor.labels="black")
# Sesuai dengan hasil grafik grouped bar chart, di setiap tingkat kode 1
(Laki-laki) rata rata konsumsi rokoknya mendominasi. Terlihat dari
ukuran kotak kode 1 (laki-laki) pada setiap tingkat pendidikan yang
memiliki ukuran yang lebih besar pada kode 2 (perempuan).