library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'ggplot2' was built under R version 4.3.2
## Warning: package 'tibble' 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 'purrr' 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 '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.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ 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(ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.3.2
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(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
##
## 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(dplyr)
data_besaran1 <- read.csv("C:/Users/citra/Documents/REHAN/Visdat/Visualisasi Data VISDAT/Tugas/2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv", header=TRUE, sep=",")
head(data_besaran1)
## X URUT PSU SSU WI1 WI2 R101 R102 R105 R401 R403 R404 R405 R407
## 1 0 500001 12448 123442 12435 123427 32 7 2 1 1 4 2 68
## 2 1 500001 12448 123442 12435 123427 32 7 2 2 3 2 2 46
## 3 2 500001 12448 123442 12435 123427 32 7 2 3 6 1 2 16
## 4 3 500001 12448 123442 12435 123427 32 7 2 4 6 1 1 6
## 5 4 500002 31373 311039 31360 311024 32 72 1 1 1 3 2 62
## 6 5 500002 31373 311039 31360 311024 32 72 1 2 3 1 1 38
## R408 R409 R406A R406B R406C R410 R501 R502 R503 R504 R506 R507 R508 R509 R601
## 1 0 20 5 4 1954 2 1 1 0 1 2 1 5 1 32
## 2 5 22 2 10 1976 2 1 2 1 1 2 1 2 1 32
## 3 0 0 23 1 2007 2 0 3 2 1 2 1 2 1 32
## 4 0 0 17 8 2016 2 0 4 2 1 1 1 2 1 32
## 5 0 16 6 12 1960 1 2 1 0 1 2 1 2 1 32
## 6 0 0 28 7 1984 1 0 1 1 1 1 1 1 1 32
## R602 R603 R604 R605 R606 R607 R608 R609 R610 R611 R612 R613 R614 R615 R616
## 1 7 32 7 0 0 1 1 5 3 0 3 8 3 0 0
## 2 7 32 7 0 0 1 1 5 3 0 19 8 19 0 0
## 3 7 32 7 0 0 1 1 5 3 0 15 1 8 5 5
## 4 7 32 7 3 1 1 1 5 2 1 3 1 25 5 5
## 5 72 32 72 0 0 1 5 5 3 0 3 8 3 0 0
## 6 72 32 72 0 0 1 5 5 3 0 3 8 3 0 0
## R617 R618 R619 R620 R621 R701 R702 R703_A R703_B R703_C R703_D R703_X R704
## 1 0 0 0 0 0 1 1 C D 3
## 2 0 0 0 0 0 1 5 C D 3
## 3 0 0 3 0 0 5 5 C D 3
## 4 0 0 1 0 0 5 5 0
## 5 0 0 0 0 0 5 5 C D 3
## 6 0 0 0 0 0 1 5 A D 1
## R705 R706 R707 R708 R709 R801 R802 R807_A R807_B R807_C R807_X R808 R809_A
## 1 5 0 0 0 0 5 5 X 5
## 2 5 0 0 0 0 1 1 X 1
## 3 5 0 0 0 0 1 1 B 1
## 4 0 0 0 0 0 5 5 X 5
## 5 5 0 0 0 0 1 1 X 5
## 6 0 11 5 48 48 1 1 X 5
## R809_B R809_C R809_D R809_E R810_A R810_B R810_C R810_D R810_E R810_F R811_A
## 1 NA
## 2 D A E FALSE A
## 3 B D A D FALSE
## 4 NA
## 5 NA
## 6 NA
## R811_B R811_C R811_D R811_E R811_F R811_G R811_H R811_I R811_J R811_K R811_L
## 1 NA
## 2 B D NA J
## 3 D NA H J
## 4 NA
## 5 NA
## 6 NA
## R812 R901 R902 R903 R904 R905 R906 R907 R908 R909 R910 R911 R912 R913 R914
## 1 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 2 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 3 1 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 4 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 5 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 6 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## R915 R916 R1001 R1002 R1003 R1004 R1005 R1006 R1007 R1008 R1009 R1010 R1101_A
## 1 0 0 1 4 8 4 8 4 8 4 8 5
## 2 0 0 1 4 8 4 8 4 8 4 8 5
## 3 0 0 1 4 8 4 8 4 8 4 8 5
## 4 0 0 1 4 8 4 8 4 8 4 8 5
## 5 0 0 1 4 8 4 8 4 8 4 8 5 A
## 6 0 0 1 4 8 4 8 4 8 4 8 5 A
## R1101_B R1101_C R1101_D R1101_E R1101_X R1102 R1103 R1104 R1105 R1106 R1107_A
## 1 E 5 0 0 0 0
## 2 X 5 0 0 0 0
## 3 X 1 5 1 5 5
## 4 X 1 5 1 5 5
## 5 5 0 0 0 0
## 6 5 0 0 0 0
## R1107_B R1107_C R1107_D R1107_E R1107_F R1107_G R1107_H R1108 R1109_A R1109_B
## 1 NA 0
## 2 NA 0
## 3 NA 0
## 4 NA 0
## 5 NA 0
## 6 NA 0
## R1109_C R1109_D R1109_E R1109_X R1110_A R1110_B R1110_C R1110_D R1110_E
## 1
## 2
## 3
## 4
## 5
## 6
## R1110_F R1110_G R1110_H R1110_I R1201 R1202_A R1202_B R1202_C R1202_D R1202_E
## 1 NA 5
## 2 NA 5
## 3 NA 5
## 4 NA 5
## 5 NA 5
## 6 NA 5
## R1202_F R1202_G R1203 R1204_A R1204_B R1204_C R1204_D R1204_E R1204_X R1205_A
## 1 NA 0
## 2 NA 0
## 3 NA 0
## 4 NA 0
## 5 NA 0
## 6 NA 0
## R1205_B R1205_C R1205_D R1205_E R1205_F R1205_G R1205_H R1205_I R1206 R1207
## 1 NA 5 5
## 2 NA 5 5
## 3 NA 5 5
## 4 NA 5 5
## 5 NA 5 5
## 6 NA 5 1
## R1208 R1209 FWT
## 1 0 5 454.8891
## 2 0 5 454.8891
## 3 0 5 454.8891
## 4 0 5 454.8891
## 5 0 5 172.3768
## 6 35 1 172.3768
# Untuk Bar Chart
data_besaran2 <- data_besaran1[,c("R1101_A","R1101_B", "R1101_C", "R1101_D", "R1101_E", "R1101_X")]
data_besaran3 <- c(data_besaran2$R1101_A, data_besaran2$R1101_B, data_besaran2$R1101_C, data_besaran2$R1101_D, data_besaran2$R1101_E, data_besaran2$R1101_X)
data_besaran4 <- data.frame(
nilai = data_besaran3
)
data_besaran5 <- filter(data_besaran4, nilai != "")
data_besaran6 <- mutate(data_besaran5, Jaminan_Kesehatan =
ifelse(nilai == "A", "BPJS_PBI",
ifelse(nilai =="B", "BPJS_Mandiri",
ifelse(nilai == "C", "Jamkesda",
ifelse(nilai == "D", " Asuransi_Swasta",
ifelse(nilai == "E", "Perusahaan/Kantor", "Tidak_punya"))))))
head(data_besaran6)
## nilai Jaminan_Kesehatan
## 1 A BPJS_PBI
## 2 A BPJS_PBI
## 3 A BPJS_PBI
## 4 A BPJS_PBI
## 5 A BPJS_PBI
## 6 A BPJS_PBI
# Untuk Stacked Bar Chart
data_besaran7 <- data_besaran1[,c("R1002", "R1003","R1004","R1005","R1006", "R1007", "R1008", "R1009")]
respon <- rep(1, times = 84688)
# Data Penglihatan
pertanyaan1 <- rep("Gangguan Penglihatan", times = 84688)
data_penglihatan <- data.frame(
Pertanyaan <- pertanyaan1,
Jawaban1 <- data_besaran7$R1002,
Respon<- respon)
data_penglihatan$Pertanyaan <- data_penglihatan$Pertanyaan....pertanyaan1
data_penglihatan$Jawaban <- data_penglihatan$Jawaban1....data_besaran7.R1002
data_penglihatan$Respon <- data_penglihatan$Respon....respon
data_penglihatan2 <- data_penglihatan[,c("Pertanyaan", "Jawaban", "Respon")]
data_penglihatan3 <- mutate(data_penglihatan2, Jawaban =
ifelse(Jawaban1 == 1, "Ya, selalu",
ifelse(Jawaban1 == 2, "Ya, seringkali",
ifelse(Jawaban1 == 3, "Ya, sedikit", "Tidak mengalami"))))
# Data Pendengaran
pertanyaan2 <- rep("Gangguan Pendengaran", times = 84688)
data_pendengaran <- data.frame(
Pertanyaan <- pertanyaan2,
Jawaban1 <- data_besaran7$R1002,
Respon<- respon)
data_pendengaran$Pertanyaan <- data_pendengaran$Pertanyaan....pertanyaan2
data_pendengaran$Jawaban <- data_pendengaran$Jawaban1....data_besaran7.R1002
data_pendengaran$Respon <- data_pendengaran$Respon....respon
data_pendengaran2 <- data_pendengaran[,c("Pertanyaan", "Jawaban", "Respon")]
data_pendengaran3 <- mutate(data_pendengaran2, Jawaban =
ifelse(Jawaban1 == 5, "Ya, selalu",
ifelse(Jawaban1 == 6, "Ya, seringkali",
ifelse(Jawaban1 == 7, "Ya, sedikit", "Tidak mengalami"))))
# Data Berjalan atau Naik Tangga
pertanyaan3 <- rep("Gangguan Berjalan atau Naik Tangga", times = 84688)
data_jalan <- data.frame(
Pertanyaan <- pertanyaan3,
Jawaban1 <- data_besaran7$R1004,
Respon<- respon)
data_jalan$Pertanyaan <- data_jalan$Pertanyaan....pertanyaan3
data_jalan$Jawaban <- data_jalan$Jawaban1....data_besaran7.R1004
data_jalan$Respon <- data_jalan$Respon....respon
data_jalan2 <- data_jalan[,c("Pertanyaan", "Jawaban", "Respon")]
data_jalan3 <- mutate(data_jalan2, Jawaban =
ifelse(Jawaban1 == 1, "Ya, selalu",
ifelse(Jawaban1 == 2, "Ya, seringkali",
ifelse(Jawaban1 == 3, "Ya, sedikit", "Tidak mengalami"))))
# Data Jari
pertanyaan4 <- rep("Gangguan Menggunakan atau Menggerakan Jari", times = 84688)
data_jari <- data.frame(
Pertanyaan <- pertanyaan4,
Jawaban1 <- data_besaran7$R1005,
Respon<- respon)
data_jari$Pertanyaan <- data_jari$Pertanyaan....pertanyaan4
data_jari$Jawaban <- data_jari$Jawaban1....data_besaran7.R1005
data_jari$Respon <- data_jari$Respon....respon
data_jari2 <- data_jari[,c("Pertanyaan", "Jawaban", "Respon")]
data_jari3 <- mutate(data_jari2, Jawaban =
ifelse(Jawaban1 == 5, "Ya, selalu",
ifelse(Jawaban1 == 6, "Ya, seringkali",
ifelse(Jawaban1 == 7, "Ya, sedikit", "Tidak mengalami"))))
# Data Otak
pertanyaan5 <- rep("Gangguan Mengingat atau Berkonsentrasi", times = 84688)
data_otak <- data.frame(
Pertanyaan <- pertanyaan5,
Jawaban1 <- data_besaran7$R1004,
Respon<- respon)
data_otak$Pertanyaan <- data_otak$Pertanyaan....pertanyaan5
data_otak$Jawaban <- data_otak$Jawaban1....data_besaran7.R1004
data_otak$Respon <- data_otak$Respon....respon
data_otak2 <- data_otak[,c("Pertanyaan", "Jawaban", "Respon")]
data_otak3 <- mutate(data_otak2, Jawaban =
ifelse(Jawaban1 == 1, "Ya, selalu",
ifelse(Jawaban1 == 2, "Ya, seringkali",
ifelse(Jawaban1 == 3, "Ya, sedikit", "Tidak mengalami"))))
# Data Emosional
pertanyaan6 <- rep("Gangguan Perilaku atau Emosional", times = 84688)
data_emosional <- data.frame(
Pertanyaan <- pertanyaan6,
Jawaban1 <- data_besaran7$R1007,
Respon<- respon)
data_emosional$Pertanyaan <- data_emosional$Pertanyaan....pertanyaan6
data_emosional$Jawaban <- data_emosional$Jawaban1....data_besaran7.R1007
data_emosional$Respon <- data_emosional$Respon....respon
data_emosional2 <- data_emosional[,c("Pertanyaan", "Jawaban", "Respon")]
data_emosional3 <- mutate(data_emosional2, Jawaban =
ifelse(Jawaban1 == 5, "Ya, selalu",
ifelse(Jawaban1 == 6, "Ya, seringkali",
ifelse(Jawaban1 == 7, "Ya, sedikit", "Tidak mengalami"))))
# Data Komunikasi
pertanyaan7 <- rep("Gangguan Komunikasi", times = 84688)
data_komunikasi <- data.frame(
Pertanyaan <- pertanyaan7,
Jawaban1 <- data_besaran7$R1008,
Respon<- respon)
data_komunikasi$Pertanyaan <- data_komunikasi$Pertanyaan....pertanyaan7
data_komunikasi$Jawaban <- data_komunikasi$Jawaban1....data_besaran7.R1008
data_komunikasi$Respon <- data_komunikasi$Respon....respon
data_komunikasi2 <- data_komunikasi[,c("Pertanyaan", "Jawaban", "Respon")]
data_komunikasi3 <- mutate(data_komunikasi2, Jawaban =
ifelse(Jawaban1 == 1, "Ya, selalu",
ifelse(Jawaban1 == 2, "Ya, seringkali",
ifelse(Jawaban1 == 3, "Ya, sedikit", "Tidak mengalami"))))
# Data Mandiri
pertanyaan8 <- rep("Gangguan Untuk Mengurus Diri Sendiri", times = 84688)
data_mandiri <- data.frame(
Pertanyaan <- pertanyaan8,
Jawaban1 <- data_besaran7$R1009,
Respon<- respon)
data_mandiri$Pertanyaan <- data_mandiri$Pertanyaan....pertanyaan8
data_mandiri$Jawaban <- data_mandiri$Jawaban1....data_besaran7.R1009
data_mandiri$Respon <- data_mandiri$Respon....respon
data_mandiri2 <- data_mandiri[,c("Pertanyaan", "Jawaban", "Respon")]
data_mandiri3 <- mutate(data_mandiri2, Jawaban =
ifelse(Jawaban1 == 5, "Ya, selalu",
ifelse(Jawaban1 == 6, "Ya, seringkali",
ifelse(Jawaban1 == 7, "Ya, sedikit", "Tidak mengalami"))))
# Penggabungan Data
data_besaran8 <- data.frame(
Pertanyaan = c(data_penglihatan3$Pertanyaan, data_pendengaran3$Pertanyaan, data_jalan3$Pertanyaan, data_jari3$Pertanyaan, data_otak3$Pertanyaan, data_emosional3$Pertanyaan, data_komunikasi3$Pertanyaan, data_mandiri3$Pertanyaan),
Jawaban = c(data_penglihatan3$Jawaban, data_pendengaran3$Jawaban, data_jalan3$Jawaban, data_jari3$Jawaban, data_otak3$Jawaban, data_emosional3$Jawaban, data_komunikasi3$Jawaban, data_mandiri3$Jawaban),
Respon = c(data_penglihatan3$Respon, data_pendengaran3$Respon, data_jalan3$Respon, data_jari3$Respon, data_otak3$Respon, data_emosional3$Respon, data_komunikasi3$Respon, data_mandiri3$Respon)
)
head(data_besaran8)
## Pertanyaan Jawaban Respon
## 1 Gangguan Penglihatan Tidak mengalami 1
## 2 Gangguan Penglihatan Tidak mengalami 1
## 3 Gangguan Penglihatan Tidak mengalami 1
## 4 Gangguan Penglihatan Tidak mengalami 1
## 5 Gangguan Penglihatan Tidak mengalami 1
## 6 Gangguan Penglihatan Tidak mengalami 1
ggplot(data_besaran6, aes(x = Jaminan_Kesehatan)) +
geom_bar(fill = "steelblue") +
labs(title = "Penyedia Jaminan Kesehatan Warga Jawa Barat Pada Tahun 2023", x = "Jaminan Kesehatan", y = "Peserta") +
theme_classic() +
coord_flip()
ggplot(data_besaran8, aes(x = as.factor(Pertanyaan), y = Respon, fill = as.factor(Jawaban))) +
geom_bar(stat = "identity") +
labs(fill = "Jawaban") +
ggtitle("Besaran Gangguan Fungsional Warga Jawa Barat Pada Tahun 2023") +
xlab("Jenis Gangguan") +
ylab("Penderita") +
scale_fill_manual(values = c("Ya, selalu" = "pink", "Ya, seringkali" = "cyan", "Ya, sedikit" = "darkred", "Tidak mengalami" = "blue")) +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
theme(axis.text.x = element_text(size = 8))
Pada visualisasi besaran, saya menggunakan dua data yang berbeda untuk masing-masing jenis grafik. Pada grafik bar chart, saya menggunakan data penyedia jaminan kesehatan bagi warga Jawa Barat pada tahun 2023. Hasilnya BPJS-PBI menduduki posisi pertama sebagai penyedia jaminan kesehatan. Namun, ternyata warga Jawa Barat yang tidak memiliki jaminan kesehatan juga begitu banyak sampai menduduki posisi kedua dari data. Hal ini cukup mengkhawatirkan karena warga tersebut tidak memiliki jaminan kesehatan yang memadai dan digunakan dengan cepat.
Selanjutnya pada grafik stacked bar chart, saya menggunakan data gangguan fungsional warga Jawa Barat pada tahun 2023. Gangguan fungsional yang diamati dibagi menjadi 8 kelompok, yaitu penglihatan, pendengaran, berjalan atau menaiki tangga, mengingat atau berkonsentrasi, perilaku dan/atau emosional, berbicara dan/atau memahami dan/atau berkomunikasi, dan mengurus diri sendiri. Masing-masing dari data ini menggunakan skala likert sebanyak empat level untuk mendefinisikan gangguan yang diderita. Level-level tersebut antara lain, selalu mengalami gangguan, seringkali mengalami gangguan, sedikit mengalami gangguan, dan tidak sama sekali mengalami gangguan. Hasilnya hampir seluruh warga Jawa Barat tidak mengalami gangguan fungsional selama hidup mereka. Hanya saja ada beberapa warga yang mengalami sedikit gangguan pada penglihatan, mengingat atau berkonsentrasi, dan berjalan atau menaiki tangga.
data_sebaran1 <- read.csv("C:/Users/citra/Documents/REHAN/Visdat/Visualisasi Data VISDAT/Tugas/2023 Maret JABAR - SUSENAS KOR Rumah Tangga.csv", header=TRUE, sep=",")
head(data_sebaran1)
## X URUT PSU SSU WI1 WI2 R101 R102 R105 NUINFORT R1701 R1702 R1703
## 1 0 500001 12448 123442 12435 123427 32 7 2 2 5 5 5
## 2 1 500002 31373 311039 31360 311024 32 72 1 1 1 1 1
## 3 2 500003 12092 119908 12079 119893 32 6 2 2 5 5 5
## 4 3 500004 31135 308689 31122 308674 32 72 1 2 5 5 5
## 5 4 500005 33988 336798 33975 336783 32 77 1 1 5 5 5
## 6 5 500006 34062 337531 34049 337516 32 77 1 1 5 5 5
## R1704 R1705 R1706 R1707 R1708 NUINFORT1 R1801 R1802 R1803 R1804 R1805 R1806
## 1 5 5 5 5 5 2 1 1 5 110 5 2
## 2 5 5 5 5 5 1 1 1 1 35 5 3
## 3 5 5 5 5 5 2 1 1 1 96 5 2
## 4 5 5 5 5 5 2 2 1 1 300 5 2
## 5 5 5 5 5 5 1 1 3 0 84 1 2
## 6 5 5 5 5 5 1 1 1 1 300 1 2
## R1807 R1808 R1809A R1809B R1809C R1809D R1809E R1810A R1810B R1811A R1811B
## 1 1 4 2 1 1 98 7 4 2 2 998
## 2 1 6 1 1 4 0 0 4 2 1 0
## 3 1 2 1 1 1 20 7 5 1 1 0
## 4 1 2 1 1 1 98 7 2 0 2 10
## 5 1 2 1 1 1 98 7 1 0 1 0
## 6 1 2 1 1 1 98 7 1 0 1 0
## R1812 R1813A R1813B R1813C R1813D R1813E R1814A R1814B R1815A R1815B R1815C
## 1 5 5 5 5 5 5 4 2 1 1 1
## 2 5 5 5 5 5 5 4 2 1 1 1
## 3 5 5 5 5 5 5 5 1 1 1 5
## 4 5 5 5 5 5 5 5 2 1 1 1
## 5 5 5 5 5 5 5 4 2 1 1 1
## 6 5 5 5 5 5 5 3 0 1 1 1
## R1816 R1816B1 R1816B2 R1816B3 R1817 R1901A R1901B R1901C R1901D R1901E R1901F
## 1 1 1 0 0 4 1 5 5 5 5 5
## 2 1 1 0 0 4 5 5 5 5 5 5
## 3 1 1 1 0 4 5 5 5 5 5 5
## 4 1 2 0 0 4 1 5 5 5 5 5
## 5 1 1 0 0 2 5 5 5 5 5 5
## 6 1 3 0 0 3 5 5 5 5 5 5
## R1901G R1901H R1901I R1901J R2001A R2001B R2001C R2001D R2001E R2001F R2001G
## 1 5 5 5 5 5 1 5 5 5 1 5
## 2 5 5 5 5 5 5 5 5 5 5 5
## 3 5 5 5 5 5 1 5 5 5 5 5
## 4 5 5 5 5 5 1 5 5 5 5 5
## 5 5 5 5 5 1 1 5 5 5 1 5
## 6 5 5 5 5 1 1 1 1 1 1 1
## R2001H R2001I R2001J R2001K R2001L R2001M R2002_A R2002_B R2002_C R2002_D
## 1 5 5 5 5 5 1 A
## 2 5 5 5 5 5 1 A
## 3 1 5 5 5 5 1 A
## 4 1 5 5 5 5 1 A
## 5 1 1 1 1 1 5
## 6 1 1 5 1 1 1 A
## R2101A R2101B R2101C R2201A2 R2201A3 R2201B2 R2201B3 R2201C2 R2201C3 R2201D2
## 1 2 0 2 1 1 5 0 5 0 5
## 2 1 2 0 5 0 5 0 5 0 5
## 3 1 1 0 5 0 5 0 5 0 5
## 4 1 1 0 5 0 5 0 5 0 5
## 5 1 2 0 5 0 5 0 5 0 1
## 6 4 0 0 5 0 5 0 5 0 5
## R2201D3 R2201E2 R2201E3 R2201F2 R2201F3 R2202 R2203 R2204A R2204B R2204C_A
## 1 0 5 0 5 0 2 1 1 4 A
## 2 0 5 0 5 0 1 5 0 0
## 3 0 5 0 5 0 5 5 0 0
## 4 0 5 0 5 0 5 5 0 0
## 5 1 5 0 5 0 5 5 0 0
## 6 0 5 0 5 0 5 5 0 0
## R2204C_B R2204C_C R2204C_D R2204C_E R2204C_F R2204C_G R2205A R2206A R2207
## 1 NA 5 5 1
## 2 NA 5 5 1
## 3 NA 5 5 1
## 4 NA 5 5 5
## 5 NA 5 5 5
## 6 NA 5 5 5
## R2208A2 R2208B2 R2208BI2 R2208C2 R2208D2 R2208EIB2 R2208EIIB2 R2208EIT2
## 1 5 0 0 0 0 0 0 0
## 2 5 0 0 0 0 0 0 0
## 3 5 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
## R2208EIIT2 R2208EK2 R2208ENU2 R2208EIL2 R2208EIIL2 R2208ES2 R2208F2 R2208G2
## 1 0 0 0 0 0 0
## 2 0 0 0 0 0 0
## 3 0 0 0 0 0 0
## 4 0 0 0 0 0 0
## 5 0 0 0 0 0 0
## 6 0 0 0 0 0 0
## R2208H2 R2208A3 R2208B3 R2208BI3 R2208C3 R2208D3 R2208EIB3 R2208EIIB3
## 1 0 5 0 0 0 0 0 0
## 2 0 5 0 0 0 0 0 0
## 3 0 5 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
## R2208EIT3 R2208EIIT3 R2208EK3 R2208ENU3 R2208EIL3 R2208EIIL3 R2208ES3 R2208F3
## 1 0 0 0 0 0 0
## 2 0 0 0 0 0 0
## 3 0 0 0 0 0 0
## 4 0 0 0 0 0 0
## 5 0 0 0 0 0 0
## 6 0 0 0 0 0 0
## R2208G3 R2208H3 R2208A4 R2208B4 R2208BI4 R2208C4 R2208D4 R2208EIB4 R2208EIIB4
## 1 0 0 1 1 600000 3 1 200000 17
## 2 0 0 5 0 0 0 0 0 0
## 3 0 0 1 1 400000 2 1 240000 20
## 4 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0
## R2208EIT4 R2208EIIT4 R2208EK4 R2208ENU4 R2208EIL4 R2208EIIL4 R2208ES4
## 1 40000 16 DAGING AYAM 59 70000 2 KG
## 2 0 0 0 0 0
## 3 60000 36 KENTANG 13 100000 5 KG
## 4 0 0 0 0 0
## 5 0 0 0 0 0
## 6 0 0 0 0 0
## R2208F4 R2208G4 R2208H4 R2208A5 R2208B5 R2208BI5 R2208C5 R2208D5 R2208EIB5
## 1 1 1 1 5 0 0 0 0 0
## 2 0 0 0 1 1 600000 3 1 110000
## 3 1 5 1 5 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0
## R2208EIIB5 R2208EIT5 R2208EIIT5 R2208EK5 R2208ENU5 R2208EIL5
## 1 0 0 0 0 0
## 2 10 26000 16 DAGING AYAM RAS 59 32000
## 3 0 0 0 0 0
## 4 0 0 0 0 0
## 5 0 0 0 0 0
## 6 0 0 0 0 0
## R2208EIIL5 R2208ES5 R2208F5 R2208G5 R2208H5 R2209A R2209B R2209C R2210A
## 1 0 0 0 0 5 5 5 5
## 2 1 KG 1 1 1 1 5 5 5
## 3 0 0 0 0 1 5 5 5
## 4 0 0 0 0 5 5 5 5
## 5 0 0 0 0 5 5 5 1
## 6 0 0 0 0 5 5 5 5
## R2210B1 R2210B2 R2210B3 R2210B4 R2210B5 R2211A R2211A1 R2211A2 R2211A3
## 1 5 5 5 5 5 1 600000 0 0
## 2 5 5 5 5 5 5 0 0 0
## 3 5 5 5 5 5 5 0 0 0
## 4 5 5 5 5 5 5 0 0 0
## 5 5 5 5 5 5 5 0 0 0
## 6 5 5 5 5 5 5 0 0 0
## R2211A4 R2211A5 R2211B R2211B1 R301 R302 R303 R304 R305 FWT
## 1 0 0 5 0 4 0 4 3 1 454.889101
## 2 0 0 5 0 2 0 2 2 0 172.376821
## 3 0 0 5 0 3 0 3 3 1 241.578661
## 4 0 0 5 0 7 1 6 5 1 93.673563
## 5 0 0 5 0 3 0 3 3 1 122.217556
## 6 0 0 5 0 2 0 2 2 0 7.638085
data_sebaran2 <- data.frame(Kuantitas = data_sebaran1$R2208EIIB3)
data_sebaran2 <- filter(data_sebaran2, Kuantitas != 0)
data_sebaran2$Kuantitas <- as.numeric(data_sebaran2$Kuantitas)
head(data_sebaran2)
## Kuantitas
## 1 10
## 2 13
## 3 10
## 4 1
## 5 7
## 6 10
ggplot(data_sebaran2)+
geom_boxplot(aes(y=Kuantitas)) +
labs(title="Boxplot Kuantitas Pembelian Beras di Jawa Barat Pada Januari 2023", y="Kuantitas (kg)")
ggplot(data_sebaran2)+
geom_density(aes(x=Kuantitas,fill= "Pembelian Beras" ),color="#e9ecef", alpha=0.4)+
labs(title="Density Plot Pembelian Beras di Jawa Barat Pada Januari 2023")+
xlab("Kuantitas Pembelian (kg)")+
ylab("")
Pada visualisasi sebaran, saya fokus kepada data pembelian beras di Jawa Barat pada bulan Januari 2023. Di visualisasi pertama yaitu boxplot, hasilnya cukup berbeda terhadap kebanyakan boxplot pada umumnya. Hasil boxplot pada data ini menyajikan garis lurus pada nilai kuantitas 10 dengan beberapa pencilan di atas dan di bawah boxplot. Selanjutnya, pada density plot semakin terlihat bahwa hampir sebagian besar warga Jawa Barat membeli beras sebanyak 10 kg pada Januari 2023. Sebaran datanya pun hampir sempurna dengan jenis sebaran normal. Hanya saja ada “puncak” density plot di nilai kuantitas 20 kg yang mengindikasikan keragaman tersendiri pada data.
data_komposisi1 <- read.csv("C:/Users/citra/Documents/REHAN/Visdat/Visualisasi Data VISDAT/Tugas/2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv", header=TRUE, sep=",")
head(data_komposisi1)
## X URUT PSU SSU WI1 WI2 R101 R102 R105 R401 R403 R404 R405 R407
## 1 0 500001 12448 123442 12435 123427 32 7 2 1 1 4 2 68
## 2 1 500001 12448 123442 12435 123427 32 7 2 2 3 2 2 46
## 3 2 500001 12448 123442 12435 123427 32 7 2 3 6 1 2 16
## 4 3 500001 12448 123442 12435 123427 32 7 2 4 6 1 1 6
## 5 4 500002 31373 311039 31360 311024 32 72 1 1 1 3 2 62
## 6 5 500002 31373 311039 31360 311024 32 72 1 2 3 1 1 38
## R408 R409 R406A R406B R406C R410 R501 R502 R503 R504 R506 R507 R508 R509 R601
## 1 0 20 5 4 1954 2 1 1 0 1 2 1 5 1 32
## 2 5 22 2 10 1976 2 1 2 1 1 2 1 2 1 32
## 3 0 0 23 1 2007 2 0 3 2 1 2 1 2 1 32
## 4 0 0 17 8 2016 2 0 4 2 1 1 1 2 1 32
## 5 0 16 6 12 1960 1 2 1 0 1 2 1 2 1 32
## 6 0 0 28 7 1984 1 0 1 1 1 1 1 1 1 32
## R602 R603 R604 R605 R606 R607 R608 R609 R610 R611 R612 R613 R614 R615 R616
## 1 7 32 7 0 0 1 1 5 3 0 3 8 3 0 0
## 2 7 32 7 0 0 1 1 5 3 0 19 8 19 0 0
## 3 7 32 7 0 0 1 1 5 3 0 15 1 8 5 5
## 4 7 32 7 3 1 1 1 5 2 1 3 1 25 5 5
## 5 72 32 72 0 0 1 5 5 3 0 3 8 3 0 0
## 6 72 32 72 0 0 1 5 5 3 0 3 8 3 0 0
## R617 R618 R619 R620 R621 R701 R702 R703_A R703_B R703_C R703_D R703_X R704
## 1 0 0 0 0 0 1 1 C D 3
## 2 0 0 0 0 0 1 5 C D 3
## 3 0 0 3 0 0 5 5 C D 3
## 4 0 0 1 0 0 5 5 0
## 5 0 0 0 0 0 5 5 C D 3
## 6 0 0 0 0 0 1 5 A D 1
## R705 R706 R707 R708 R709 R801 R802 R807_A R807_B R807_C R807_X R808 R809_A
## 1 5 0 0 0 0 5 5 X 5
## 2 5 0 0 0 0 1 1 X 1
## 3 5 0 0 0 0 1 1 B 1
## 4 0 0 0 0 0 5 5 X 5
## 5 5 0 0 0 0 1 1 X 5
## 6 0 11 5 48 48 1 1 X 5
## R809_B R809_C R809_D R809_E R810_A R810_B R810_C R810_D R810_E R810_F R811_A
## 1 NA
## 2 D A E FALSE A
## 3 B D A D FALSE
## 4 NA
## 5 NA
## 6 NA
## R811_B R811_C R811_D R811_E R811_F R811_G R811_H R811_I R811_J R811_K R811_L
## 1 NA
## 2 B D NA J
## 3 D NA H J
## 4 NA
## 5 NA
## 6 NA
## R812 R901 R902 R903 R904 R905 R906 R907 R908 R909 R910 R911 R912 R913 R914
## 1 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 2 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 3 1 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 4 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 5 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## 6 5 5 0 0 0 5 0 0 0 0 0 0 0 0 0
## R915 R916 R1001 R1002 R1003 R1004 R1005 R1006 R1007 R1008 R1009 R1010 R1101_A
## 1 0 0 1 4 8 4 8 4 8 4 8 5
## 2 0 0 1 4 8 4 8 4 8 4 8 5
## 3 0 0 1 4 8 4 8 4 8 4 8 5
## 4 0 0 1 4 8 4 8 4 8 4 8 5
## 5 0 0 1 4 8 4 8 4 8 4 8 5 A
## 6 0 0 1 4 8 4 8 4 8 4 8 5 A
## R1101_B R1101_C R1101_D R1101_E R1101_X R1102 R1103 R1104 R1105 R1106 R1107_A
## 1 E 5 0 0 0 0
## 2 X 5 0 0 0 0
## 3 X 1 5 1 5 5
## 4 X 1 5 1 5 5
## 5 5 0 0 0 0
## 6 5 0 0 0 0
## R1107_B R1107_C R1107_D R1107_E R1107_F R1107_G R1107_H R1108 R1109_A R1109_B
## 1 NA 0
## 2 NA 0
## 3 NA 0
## 4 NA 0
## 5 NA 0
## 6 NA 0
## R1109_C R1109_D R1109_E R1109_X R1110_A R1110_B R1110_C R1110_D R1110_E
## 1
## 2
## 3
## 4
## 5
## 6
## R1110_F R1110_G R1110_H R1110_I R1201 R1202_A R1202_B R1202_C R1202_D R1202_E
## 1 NA 5
## 2 NA 5
## 3 NA 5
## 4 NA 5
## 5 NA 5
## 6 NA 5
## R1202_F R1202_G R1203 R1204_A R1204_B R1204_C R1204_D R1204_E R1204_X R1205_A
## 1 NA 0
## 2 NA 0
## 3 NA 0
## 4 NA 0
## 5 NA 0
## 6 NA 0
## R1205_B R1205_C R1205_D R1205_E R1205_F R1205_G R1205_H R1205_I R1206 R1207
## 1 NA 5 5
## 2 NA 5 5
## 3 NA 5 5
## 4 NA 5 5
## 5 NA 5 5
## 6 NA 5 1
## R1208 R1209 FWT
## 1 0 5 454.8891
## 2 0 5 454.8891
## 3 0 5 454.8891
## 4 0 5 454.8891
## 5 0 5 172.3768
## 6 35 1 172.3768
data_komposisi2 <- data_komposisi1[,c("R105","R611")]
data_komposisi2$R611 <- as.numeric(data_komposisi2$R611)
data_komposisi3 <- filter(data_komposisi2, R611 != 0)
data_komposisi_kota1 <- filter(data_komposisi3, R105 == 1)
data_komposisi_desa1 <- filter(data_komposisi3, R105 == 2)
data_komposisi_kota2 <- data.frame(
Jenis_Sekolah = c("Negeri", "Swasta"),
count_kota = table(cut(data_komposisi_kota1$R611, breaks=c(0,1,2), labels=c("Negeri","Swasta")))
)
data_komposisi_desa2 <- data.frame(
Jenis_Sekolah = c("Negeri", "Swasta"),
count_desa = table(cut(data_komposisi_desa1$R611, breaks=c(0,1,2), labels=c("Negeri","Swasta")))
)
data_komposisi3 <- mutate(data_komposisi3, Daerah = ifelse(R105 == 1, "Perkotaan", "Perdesaan"))
data_komposisi3 <- mutate(data_komposisi3, Jenis_Sekolah = ifelse(R611 == 1, "Negeri", "Swasta"))
data_komposisi4 <- data.frame(Daerah = data_komposisi3$Daerah, Jenis_Sekolah = data_komposisi3$Jenis_Sekolah)
head(data_komposisi4)
## Daerah Jenis_Sekolah
## 1 Perdesaan Negeri
## 2 Perdesaan Negeri
## 3 Perkotaan Negeri
## 4 Perkotaan Swasta
## 5 Perkotaan Swasta
## 6 Perdesaan Swasta
ggplot(data_komposisi_kota2, aes(x = "", y = count_kota.Freq , fill = Jenis_Sekolah)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
scale_fill_brewer(palette = "Set72392") +
theme_void() +
theme(legend.position = "right") +
labs(title = "data_komposisi Jenis Sekolah di Daerah Perkotaan", fill = "Jenis Sekolah") +
geom_text(aes(label = count_kota.Freq), position = position_stack(vjust = 0.5))
## Warning: Unknown palette: "Set72392"
ggplot(data_komposisi_desa2, aes(x = "", y = count_desa.Freq , fill = Jenis_Sekolah)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
scale_fill_brewer(palette = "Set9999") +
theme_void() +
theme(legend.position = "right") +
labs(title = "Proporsi Jenis Sekolah di Daerah Perdesaan", fill = "Jenis Sekolah") +
geom_text(aes(label = count_desa.Freq), position = position_stack(vjust = 0.5))
## Warning: Unknown palette: "Set9999"
ggplot(data_komposisi4) +
geom_mosaic(aes(x = product(Jenis_Sekolah, Daerah), fill = Daerah)) +
scale_fill_brewer(palette = "Set2") +
labs(title = "Mosaic Plot: Daerah vs Jenis Sekolah",
x = "Daerah", y = "Jenis Sekolah") +
theme_classic()
## Warning: The `scale_name` argument of `continuous_scale()` is deprecated as of ggplot2
## 3.5.0.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `trans` argument of `continuous_scale()` is deprecated as of ggplot2 3.5.0.
## ℹ Please use the `transform` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: `unite_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `unite()` instead.
## ℹ The deprecated feature was likely used in the ggmosaic package.
## Please report the issue at <https://github.com/haleyjeppson/ggmosaic>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Pada visualisasi komposisi, saya fokus terhadap data pendidikan untuk mengetahui perbedaan jenis pendidikan warga Jawa Barat di daerah perkotaan dan perdesaan. Melalui analisis pie chart, terlihat bahwa pada dua daerah, proporsi warga yang bersekolah di sekolah negeri lebih tinggi dibanding warga yang bersekolah di sekolah swasta. Selanjutnya, pada mosaic plot juga terlihat bahwa warga di daerah perkotaan jauh lebih besar untuk mengenyam pendidikan baik di sekolah negeri atau swasta. Hal ini mungkin juga dapat disebabkan karena faktor kuantitas penduduk di perkotaan yang lebih banyak daripada di perdesaan.