Data

Data yang saya gunakan adalah data Aids2 yang mendeskripsikan data pasien yang didiagnosis dengan AIDS di Australia sebelum 1 Juli 1991 yang berisi 2.843 baris dan kolom-kolom berikut:

  1. state (negara bagian)

    Pengelompokan negara bagian asal: “NSW” termasuk ACT dan “lainnya” adalah WA, SA, NT dan TAS.

  2. sex (jenis kelamin)

    Jenis kelamin pasien.

  3. diag

    (Julian) Tanggal diagnosis.

  4. death (kematian)

    (Julian) tanggal kematian atau akhir pengamatan.

  5. status

    “A” (hidup) atau ‘D’ (mati) pada akhir pengamatan.

  6. T.categ

    Kategori penularan yang dilaporkan.

  7. age (usia)

    Usia (tahun) saat diagnosis.

Data Aids2 Dataset tersebut bersumber dari package MASS, package MASS adalah package yang menyediakan berbagai fungsi statistik, termasuk metode regresi, analisis data, dan distribusi probabilitas.

Input Data

library(MASS)

data("Aids2")

head(Aids2)
dim(Aids2)
## [1] 2843    7

Keterangan:

library: digunakan untuk membantu mengaktifkan package

data: digunakan untuk menampilkan daftar dataset

head: digunakan untuk menampilkan data pada bagian atas pertama/atas saja dari sebuah vektor, matriks, tabel, data frame ataupun sebuah fungsi

dim: digunakan untuk mengetahui jumlah baris dan kolom

Bar Chart

sebaran dari data kategorik ordinal Penularan Aids yang dilaporkan (T.categ)

library(ggplot2)

ggplot(data = Aids2, mapping = aes(x = T.categ)) + 
  geom_bar(fill = "navy", color = "red2")

Keterangan:

ggplot package yang digunakan untuk membuat plot

mapping digunakan untuk menentukan variabel yang akan digunakan (sumbu X)

geom_bar digunakan untuk membuat grafik batang

Bar Chart dengan tabel frekuensi

Membuat tabel frekuensi

freqtab <- as.data.frame(table(Aids2$T.categ))
freqtab

Keterangan:

as.data.frame digunakan untuk mengubah hasil dari table menjadi data frame

table digunakan untuk menghitung jumlah frekuensi dari setiap kategori dalam variabel dari dataset

Membuat Bar Chart

ggplot(data = freqtab, mapping = aes(x = Var1, y = Freq)) + 
  geom_bar(stat = "identity", fill = "skyblue3", color = "black")

Keterangan:

stat digunakan untuk menunjukkan bahwa tinggi batang berasal langsung dari data

fill digunakan untuk memberikan warna pada grafik

color digunakan untuk memberikan warna pada garis tepi grafik

Cara lain yang dapat digunakan untuk membuat diagram batang ketika data yang kita miliki sudah dalam bentuk tabel frekuensi adalah dengan geom_col().

ggplot(data = freqtab, mapping = aes(x = Var1, y = Freq)) + 
  geom_col(fill = "magenta3", color = "black")

Modifikasi Bar Chart

Menambahkan judul, mewarnai grafik, dan memberikan label pada setiap batang.

ggplot(data = freqtab, mapping = aes(x = Var1, y = Freq)) + 
  geom_col(fill = "maroon", alpha = 0.7) + 
  labs(title = "Frekuensi berdasarkan Kategori Penularan", 
       x = "Kategori Penularan", 
       y = "Frekuensi") + 
  geom_text(aes(label = Freq), vjust = -0.25)

Keterangan:

labs digunakan untuk menambahkan label pada plot

geom_text digunakan untuk menambahkan teks (dalam atau atas) bar

label digunakan untuk menentukan teks yang akan ditampilkan

vjust digunakan untuk mengatur posisi vertikal teks

Needle Chart

ggplot(data = freqtab,
mapping = aes(x = reorder(Var1, Freq), y = Freq)) +
geom_segment(aes(x = reorder(Var1, Freq),
xend= reorder(Var1, Freq),
y = 0, yend = Freq), color = "red3") +
geom_point(color = "navyblue", size=4, alpha = 0.6) +
geom_text(aes(label = Freq), vjust = -1.00) +
coord_flip() +
labs(y = "Jumlah Pasien", x = "Kategori Penularan")

Keterangan:

geom_segment digunakan untuk menambahkan garis untuk setiap kategori

xend digunakan untuk menggambar atau menentukan posisi akhir dari garis pada sumbu X

geom_point digunakan untuk menambahkan titik pada setiap kategori untuk menandai frekuensinya

Grouped Bar Chart

library(viridis)

ggplot(data = Aids2,
mapping = aes(x = T.categ, fill =as.factor(sex))) + 
geom_bar(position = "dodge", stat = "count") +
labs(x = "Kategori Penularan", fill = "Jenis Kelamin",
y = "jumlah Pasien") +
scale_fill_brewer(palette = "Purples") +
theme_light()

Keterangan:

viridis package yang digunakan untuk membuat skema warna untuk visualisasi data

position digunakan untuk mengatur posisi batang

palette digunakan untuk memilih warna grafik

Stacked Bar Chart

ggplot(data = Aids2, 
       mapping = aes(x = T.categ, fill = as.factor(sex))) + 
  geom_bar(position = "stack", stat = "count") +
  geom_text(stat = "count", aes(label = after_stat(count)), vjust = 0) + 
  labs(x = "Kategori Penularan", 
       fill = "Jenis Kelamin",
       y = "Jumlah Pasien") +
  scale_fill_brewer(palette = "Y1GnBu") +
  theme_light()

Keterangan:

scale_fill_brewer digunakan untuk membuat skema warna brewer

theme_light digunakan untuk membuat tema (latar belakang) cerah

Pie Chart

Menyiapkan data dengan meringkas menjadi tabel frekuensi

library(dplyr)

df <- Aids2 %>%
  group_by(T.categ) %>%
  summarise(counts = n())

df

dplyr package yang digunakan untuk manipulasi data

group_by digunakan untuk mengelompokkan data

summarise digunakan untuk menghitung jumlah kasus di setiap kategori

Mengitung posisi label teks sebagai jumlah kumulatif proporsi.

df <- df %>%
  arrange(desc(T.categ)) %>%
  mutate(prop = round(counts*100/sum(counts), 1),
         lab.ypos = cumsum(prop) - 0.5*prop)

head(df, 4)

Keterangan:

arrange digunakan untuk mengurutkan kategori secara descending (besar ke kecil)

mutate digunakan untuk memodifikasi kolom dalam dataframe

lab.ypos digunakan untuk menentukakan posisi label

Membuat grafik Pie Chart

ggplot(df, aes(x = "", y = prop, fill = T.categ)) +
  geom_bar(width = 1, stat = "identity", color = "black") +
  geom_text(aes(y = lab.ypos, label = prop), color = "white")+
  coord_polar("y", start = 0)+
  ggpubr::fill_palette("ucscgb")+
  theme_void()

Keterangan:

ggpubr digunakan untuk mengatur skema warna pada pie chart

theme_void digunakan untuk menghapus grid

Mengubah file shp ke xlsx

#Mengextract shp to xlsx
library(writexl)
library(sf)

data.shp.banten<-read_sf("C:/Kuliah/Eksplorasi dan Visualisasi Data/PETA SHP 34 Prov/4-Banten/Export_Output_2.shp")

data.shp.df<- st_drop_geometry(data.shp.banten)

write_xlsx(data.shp.df, "Banten_desa.xlsx")

Keterangan:

writexl package yang digunakan untuk menyimpan data dalam format .xlsx

sf package yang digunakan untuk data spasial (membaca file .SHP)

read_sf digunakan untuk membaca file .shp

st_drop_geometry digunakan untuk menghapus data atau komponen spasial

write_xlsx digunakan untuk menyimpan hasil dalam file excel

Peta Spasial

#Import Data
library(readxl)
library(sf)

setwd("C:/Kuliah/Eksplorasi dan Visualisasi Data")

#Import Data Excel
data.spasial=read_xlsx("Banten_desa.xlsx",sheet = 1)
head(data.spasial)
#IMPORT PETA SHP
shp.banten=read_sf("C:/Kuliah/Eksplorasi dan Visualisasi Data/PETA SHP 34 Prov/4-Banten/Export_Output_2.shp")

#Menggabungkan Data ke file SHP
gabung.banten=left_join(shp.banten,data.spasial,by="ID_2")
head(gabung.banten)

Keterangan:

setwd digunakan untuk mengatur direktori kerja

left_join digunakan untuk menggabungkan data

Pemetaan data Spasial

#Pemetaan Longitude provinsi Banten
plot.banten = ggplot(data=gabung.banten) +
  geom_sf(aes(fill = Longitude.x)) +
  scale_fill_distiller("Longitude", palette = "BuPu")

plot.banten

Keterangan:

geom_sf digunakan untuk menggambar fitur spasial dari objek spatial features (sf)

scale_fill_distiller digunakan untuk mengatur skala warna berdasarkan data