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 '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.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(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(ggplot2)
library(readxl)
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
Menambahkan library-library yang akan digunakan selama melakukan visualisasi data. # Import Data
data <- read_xlsx("C:/Users/Alista/Documents/Semester 4/Data Visdat Praktikum.xlsx", sheet = 2)
str(data)
## tibble [62,818 × 11] (S3: tbl_df/tbl/data.frame)
## $ city : chr [1:62818] "Ciamis" "Ciamis" "Sukabumi" "Sukabumi" ...
## $ R401 : num [1:62818] 2 3 1 2 1 2 3 1 2 3 ...
## $ R801 : chr [1:62818] "Ya" "Ya" "Ya" "Ya" ...
## $ R802 : chr [1:62818] "Ya" "Ya" "Ya" "Ya" ...
## $ R808 : chr [1:62818] "Ya" "Ya" "Tidak" "Tidak" ...
## $ R812 : chr [1:62818] "Tidak" "Ya" "Tidak" "Tidak" ...
## $ R709 : num [1:62818] 0 0 0 0 0 48 50 0 0 97 ...
## $ R1108: num [1:62818] 0 0 0 0 0 0 0 0 0 0 ...
## $ R1203: num [1:62818] 0 0 0 0 0 0 0 0 0 0 ...
## $ R1208: num [1:62818] 0 0 0 0 0 35 49 0 0 112 ...
## $ R612 : chr [1:62818] "SD" "D4" "SMK" "SD" ...
Mengimport data dari penyimpanan kompter menggunakan fungsi read.xlsx untuk membaca data bertipe excel. Seluruh data kemudian disimpan kedalam variabel yang diinisialisasikan sebagai data.
ggplot(data, aes(x = city)) +
geom_bar(fill = "orange") +
labs(title = "Jumlah Pengguna HP per Kota", x = "Kota", y = "Jumlah Pengguna") +
theme_classic() +
coord_flip()
Visualisasi besaran pertama mengunakan bar chart untuk melihat besaran
jumlah pengguna telepom seluler di setiap kabupaten atau kota pada
Provinsi Jawa Barat. Dapat dilihat bahwa Bekasi merupakan wilayah dengan
jumlah pengguna telepon seluler terbanyak hingga menyentuh angka lebih
dari 6000 pengguna disusul dengan Bandung dan Bogor. Wilayah dengan
pengguna telepon seluler paling sedikit ditempati oleh kota Banjar yang
kurang dari 2000 pengguna.
data %>%
count(city) %>%
arrange(desc(n)) %>%
ggplot() +
geom_segment(aes(x = fct_reorder(as.factor(city), n), xend = fct_reorder(as.factor(city), n), y = 0, yend = n), color = "green") +
geom_point(aes(x = fct_reorder(as.factor(city), n), y = n), color = "red", size = 2) +
scale_y_continuous(expand = c(0, 0)) +
coord_flip() +
ggtitle("Jumlah Pengguna HP Setiap Kota") +
xlab("") +
ylab("Jumlah Pengguna HP") +
theme_light() +
theme(plot.title = element_text(hjust = 0.5))
Sama halnya dengan visualisasi besaran untuk melihat jumlah pengguna
telepon seluler di setiap Kab/Kota yang ada di Provinsi Jawa Barat yang
telah dilakukan menggunakan bar chart. Namun, dapat dilihat bahwa dengan
menggunakan lollipop chart terdapat garis batas yg signifikan sehingga
dalam membaca datanya akan lebih mudah dan presisi.
Menguasai_Telepon <- data$R802
### Menghitung Pengamatan untuk Setiap Kategori Penggunaan HP
Individu_counts <- table(Menguasai_Telepon)
Individu_percent <- round ((Individu_counts / sum(Individu_counts))*100, 1)
aggregated_data <- data.frame(
Menguasai_Telepon = names(Individu_counts),
Individu_counts = as.numeric(Individu_counts),
Individu_percent
)
# Membuat pie chart dengan persentase nilai
colors <- c("lightblue", "lightpink")
ggplot(data = aggregated_data, aes(x = "", y = Individu_percent, fill = Menguasai_Telepon)) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
labs(title = "Persentase Individu Menguasai Pemakaian HP di Jawa Barat 2023",
fill = "Kecakapan Menggunakan HP") +
theme_void() +
geom_text(aes(label = paste0(Individu_percent, "%")),
position = position_stack(vjust = 0.5),
size=3.5)+
theme(plot.title = element_text(size = 10, hjust = 0.5, face="bold", color="black"),
legend.text = element_text(size = 10), legend.position = "left")+
scale_fill_manual(values=colors)
## Don't know how to automatically pick scale for object of type <table>.
## Defaulting to continuous.
Untuk melihat komposisi dari data masyarakat pengguna telepon seluler
yang merasa menguasai telepon seluler di Provinsi Jawa Barat dilakukan
menggunakan pie chart. Pie chart digunakan untuk menampilkan total
persentase yang harus mencapai 100%. Potongan berwarna pink
menggambarkan masyarakat yang merasa memiliki kecakapan yang baik dalam
menggunakan HP dan bagian berwarna biru mewakili masyarakat yang tidak
merasa menguasai penggunaan HP. Dapat diketahui dari grafik di atas
bahwa diduga sebanyak 84% penduduk Jawa Barat merasa mereka sudah
menguasai penggunaan HP dan sisanya sebanyak 16% merasa bahwa tidak
menguasai penggunaan HP.
treemap(data,
index=c("city", "R612", "R709"),
vSize="R1208",
draw=TRUE,
title="Treemap: Banyak Konsumsi Rokok Berdasarkan Wilayah, Pendidikan Terakhir, dan Lama Jam Kerja",
fontsize.title=20,
fontsize.labels=12,
fontcolor.labels="white")
Dilihat dari besaran kotak yang dihasilkan dari treemap didapatkan bahwa
3 kota teratas yang banyak mengonsumsi rokok per minggunya adalah kota
Bekasi, Bandung, dan Bogor. Mayoritas masyarakat yang mengonsumsi rokok
di kota bekasi memiliki jenjang pendidikan terakhir SD, SMP, SMA, SMK
dan lama jam kerja di angka 48 jam. Di kota Bandung mayoritas masyarakat
yang mengonsumsi rokok memiliki pendidikan terakhir pada jenjang SMP,
SMA, SD, SMK dean jam kerja 48-70 jam per minggunya. Selain itu, 3 kota
dengan konsumsi tingkat rokok terendah diantaranya Kuningan,
Pangandaran, dan kota Banjar. Hal ini dapat dilihat dari besaran kotak
yang menunjukkan setiap wilayahnya.
JamKerja <- data$R709
ggplot(data)+
geom_histogram(aes(x=JamKerja),fill="#69b3a2", color="#e9ecef", alpha=0.8)+
labs(title="Histogram Sebaran Jam Kerja Masyarakat")+
xlab("Lama Jam Kerja")+
ylab("Jumlah")+
xlim(1,100)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 32295 rows containing non-finite values (`stat_bin()`).
## Warning: Removed 2 rows containing missing values (`geom_bar()`).
Untuk melihat sebaran jam kerja keseluruhan masyarakat per minggu pada
kali ini divisualisasikan menggunakan histogran. Dari grafik histogram
di atas, dapat dilihat bahwa terdapat banyak puncak yang diduga
mengindikasikan ada beberapa kelompok selang lama kerja pada masyarakat
di Provinsi Jawa Barat sehingga histogram dihasilkan termasuk ke dalam
multimodal.
ggplot(data)+
geom_density(aes(x=R1208,fill= "Rokok" ),color="#e9ecef", alpha=0.4)+
labs(title="Density Plot Sebaran Pemakaian Rokok")+
xlab("Batang Rokok")+
ylab("Jumlah")+
xlim(1,100)
## Warning: Removed 48461 rows containing non-finite values (`stat_density()`).
Density plot yang dihasilkan menghasilkan bahwa sebaran data jumlah
rokok yang dikonsumsi oleh masyarakat di Provinsi Jawa Barat per minggu
menyebar bimodal. Hal ini dapat dilihat dengan adanya dua puncak yang
mengindikasikan dua kelompok mayoritas masyarakat yang mengonsumsi
batang rokok dengan jumlah tertentu, yakni pada angka sekitar 40 dan 85
batang rokok per minggu.