library(tidyverse)
## Warning: package 'tidyverse' 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.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ 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(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_house <- read.csv("C:\\Users\\Lusi Oktaviani\\OneDrive\\Statistics and Data Science\\Semester 4\\Visualisasi Data\\Praktikum\\2023 Maret JABAR - SUSENAS KP BP 4.3.csv", header = TRUE, sep=",")
str(data_house)
## 'data.frame': 18391 obs. of 20 variables:
## $ X : int 16 20 22 44 65 66 76 84 93 95 ...
## $ URUT : int 500017 500021 500023 500045 500066 500067 500077 500085 500094 500096 ...
## $ R101 : int 32 32 32 32 32 32 32 32 32 32 ...
## $ KAB.KOTA : chr "Kab. Bandung" "Kab. Bandung" "Kab. Bandung" "Kab. Bandung" ...
## $ R105 : int 1 1 1 2 1 1 1 1 1 1 ...
## $ R301 : int 6 2 4 2 2 8 4 2 5 1 ...
## $ FOOD : num 2528700 992143 3475286 3128571 2108829 ...
## $ NONFOOD : num 1081051 623500 3426500 1256667 1358500 ...
## $ EXPEND : num 3609751 1615643 6901786 4385238 3467329 ...
## $ KAPITA : num 601625 807821 1725446 2192619 1733664 ...
## $ KALORI_KAP: num 1848 2105 2025 1995 2487 ...
## $ PROTE_KAP : num 48.7 74.7 57.4 56.1 57.8 ...
## $ LEMAK_KAP : num 45 43.1 57.4 55.1 60.7 ...
## $ KARBO_KAP : num 272 303 260 303 345 ...
## $ WERT : num 676.34 478.6 489.24 3.48 558.63 ...
## $ WEIND : num 4058.01 957.19 1956.97 6.95 1117.25 ...
## $ PSU : int 7177 8666 6732 7985 8572 6732 6878 6739 6666 6950 ...
## $ SSU : int 71198 85915 66771 79169 84972 66772 68223 66843 66114 68948 ...
## $ WI1 : int 7164 8653 6719 7972 8559 6719 6865 6726 6653 6937 ...
## $ WI2 : int 71183 85900 66756 79154 84957 66757 68208 66828 66099 68933 ...
data_house %>%
count(KAB.KOTA) %>%
slice_max(n = 10, order_by = n) %>% # gunakan arrange(n) untuk mengurutkan sebaliknya
ggplot() +
geom_col(aes(x = fct_reorder(as.factor(KAB.KOTA), n), y = n), fill = "steelblue", width = 0.4) +
geom_text(aes(x = fct_reorder(as.factor(KAB.KOTA), n), y = n, label = n),
position = position_stack(vjust = 0.5), color = "white", size = 3) +
scale_y_continuous(expand = c(0, 0)) +
coord_flip() +
ggtitle("Kabupaten Jawa Barat dgn Pengeluaran Non Makanan Terbanyak") +
xlab("") +
ylab("NONFOOD") +
theme_classic() +
theme(plot.title = element_text(hjust = 0.5, size = 15))
Dengan menggunakan data Non Food sebagai sumbu X dan data Kabupaten/Kota sebagai sumbu Y, dapat divisualisasikan menggunakan bar chart dengan hasil seperi di atas.
Hasil tersebut mengatakan bahwa Kabupaten Bogor memeringkati peringkat pertama (jumlah = 1294) dengan pengeluaran selain konsumsi makanan lalu diikuti Kabupatem Bekasi (jumlah = 1169) dan pada urutan ketiga diisi oleh Kabupaten Bandung (jumlah = 1166).
ggplot(data_house,
mapping = aes(x = reorder(KAB.KOTA, EXPEND), y = EXPEND)) +
geom_segment(aes(x = reorder(KAB.KOTA, EXPEND), xend = reorder (KAB.KOTA, EXPEND), y = 0 , yend = EXPEND), color = "red") +
geom_point(color = "blue", sie = 4, alpha = 0.6) +
coord_flip() +
theme_classic()
## Warning in geom_point(color = "blue", sie = 4, alpha = 0.6): Ignoring unknown
## parameters: `sie`
Dengan menggunakan data Expend dan data Kabupaten/Kota, dapat divisualisasikan menggunakan lollipop chart dengan hasil seperi di atas.
Hasil tersebut mengatakan bahwa Kabupaten Bekasi memeringkati peringkat pertama dengan pengeluaran secara keseluruhan selama 2023 lalu diikuti Kabupatem Bogor diurutan kedua dan pada urutan ketiga diisi oleh Kabupaten Indramayu.
ggplot(data_house, aes(x = "", y = EXPEND)) +
geom_violin(fill = "skyblue") +
labs(title = "Violin Plot: Distribusi Pengeluaran Konsumsi Di Jawa Barat",
x = NULL,
y = "EXPEND") +
theme_minimal()
Dengan menggunakan data EXPEND maka bisa didapati hasil violin plot seperti gambar di atas. Violin plot di atas menunjukkan bahwa sebaran data menyebar pada pengeluaran (expend) di antara 0.0e+00 sampai 5.0e+07. Salah satu kelebihan violin plot adalah kita dapat langsung melihat sebaran data nya menyebar dimana dengan melihat bagain yang berbentuk violin atau menggembung nya.
data_house %>%
filter(KAB.KOTA %in% c("Kab. Bogor", "Kab. Sukabumi", "Kab. Cianjur", "Kab.Bandung", "Kab. Garut", "Kab. Tasikmalaya", "Kab. Ciamis", "Kab. Kuningan", "Kab. Cirebon", "Kab. Majalengka")) %>%
ggplot() +
geom_boxplot(aes(y = as.factor(KAB.KOTA), x = EXPEND, fill = as.factor(KAB.KOTA)), show.legend = FALSE) +
ggtitle("Sebaran Pengeluaran di 10 Kabupaten") +
ylab("Kabupaten") +
xlab("Pengeluaran") +
theme(plot.title = element_text(hjust = 0.5)) +
theme_bw()
Dengan menggunakan data EXPEND sebagai sumbu X dan data Kabupaten/Kota sebagai sumbu Y serta menggunakan visualisasi sebaran dengan jenis Box Plot maka didapati hasil seperti gambar di atas.
Pada gambar di atas salah satu yang dapat dilihat yaitu terdapat pencilan pengeluaran paling jauh di Kabupaten Bogor diperingkat pertama, lalu diikuti dengan Kabupaten Cirebon diperingkat kedua, dan pada peringkat ketiga terdapat Kabupaten Garut.
Lain-lainnya sulit untuk diamati dikarenakan keterbatasan pengamat dalam membaca sebaran pengeluarannya.
# Data simulasi
set.seed(123)
n <- 100 # Jumlah observasi
bahan <- sample(c("Asbes", "Bambu", "Genteng"), n, replace = TRUE) # Define bahan
Kab_Kota <- sample(c("Kab. Bandung", "Kab.Bogor", "Kab.Purwakarta"), n, replace = TRUE) # Define Kabupaten dan Kota
data_simulasi <- data.frame(bahan = bahan, Kab_Kota = Kab_Kota)
# Plot
ggplot(data_simulasi) +
geom_mosaic(aes(x = product(bahan, Kab_Kota), fill_alpha=bahan)) +
scale_fill_brewer(palette = "Set2") +
labs(title = "Mosaic Plot: Kabupaten/Kota vs Bahan Atap",
x = "Jenis Bahan Atap", y = "Kabupaten") +
theme_classic()
## 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.
Dengan menggunakan data Kabupaten/Kota dan Jenis Bahan Atap Rumah Tangga dapat dilihat proporsinya menggunakan Mosaic Plot.
Lebar atau tinggi dari setiap blok dalam mosaic plot menunjukkan proporsi atau frekuensi relatif dari kategori. Jadi, dapat disimpulkan bahwa pada Kabupaten Bogor yang menggunakan jenis atap genteng lebih banyak proporsinya dibandingkan menggunakan jenis atap bambu dan asbes. Lalu pada Kabupaten Bandung serta Kabupaten Purwakarta yang menggunakan jenis atap Bambu lebih banyak proporsinya dibandingkan yang menggunakan jenis atap asbes dan genteng.
data <- data.frame(
JenisBahanAtap=c("Jerami/ijuk/daun-daunan/rumbia", "Beton", "Bambu", "Lainnya"),
count=c(7, 402, 114, 16)
)
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=JenisBahanAtap)) +
geom_rect() +
coord_polar(theta="y") +
xlim(c(2, 4)) +
theme_classic()
Dengan menggunakan data jenis bahan atap yang banyak digunakan oleh rumah tangga di Kab/Kota Jawa Barat dapat dilihat komposisi nya menggunakan Diagram Donat.
Dengan komposisi paling banyak diraih oleh atap jenis Beton, lalu Bambu diurutan kedua terbanyak, dan Lainnya diurutan ketiga terbanyak.