Cars93

Input Data

library(MASS) menyediakan beberapa dataframe yang dapat digunakan untuk latihan. Salah satu dataframe yang disediakan adalah Cars93, yaitu data tentang 93 Mobil yang Dijual di Amerika Serikat pada tahun 1993 .

library(MASS)
library(ggplot2)

Memuat Dataset Cars93 dan Melihat Struktur Data

data("Cars93")
head(Cars93)
dim(Cars93)
## [1] 93 27

Bar Chart

geom_bar() pada R digunakan untuk membuat diagram batang. geom_bar() menggunakan stat = “count”, berarti ia akan menghitung jumlah observasi (frekuensi) untuk setiap kategori dari variabel yang disebutkan pada sumbu x dan menampilkannya sebagai tinggi batang. Namun, ketika menggunakan stat = “identity” digunakan untuk nilai yang sudah ada di data sebagai tinggi batang, bukan menghitung frekuensi. Berikut sebaran dari data kategorik ordinal dari 93 Mobil yang Dijual di Amerika Serikat pada tahun 1993.

ggplot(data = Cars93, mapping = aes(x = Type)) + 
  geom_bar(fill = "lavender", color = "black")

Bar Chart dengan tabel frekuensi

Membuat tabel frekuensi

freqtab <- as.data.frame(table(Cars93$Type))
freqtab

Membuat Bar Chart

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

Cara lain yang dapat digunakan untuk membuat diagram batang ketika data yang kita miliki sudah dalam bentuk tabel frekuensi adalah dengan geom_col(). geom_col() Alternatif geom_bar(stat = “identity”) untuk menampilkan nilai langsung.

ggplot(data = freqtab, mapping = aes(x = Var1, y = Freq)) + 
  geom_col()

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 = "skyblue", alpha = 0.7) + 
  labs(title = "Frekuensi berdasarkan Type penjualan mobil", 
       x = "Type Penjualan Mobil", 
       y = "Frekuensi") + 
  geom_text(aes(label = Freq), vjust = -0.25)

Needle Chart

geom_segment() → Membuat garis vertikal dari titik 0 ke nilai Freq.

geom_point() → Menambahkan titik di ujung garis.

coord_flip() → Memutar sumbu (horizontal ke vertikal).

geom_text() → Menambahkan label.

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 = "red") +
geom_point(color = "pink1", size=4, alpha = 0.6) +
geom_text(aes(label = Freq), vjust = -1.00) +
coord_flip() +
labs(y = "Banyak Mobil", x = "Type penjualan mobil")

Grouped Bar Chart

rouped Bar Chart menunjukkan jumlah mobil berdasarkan Type dan Passengers.

as.factor : digunakan saat data berbentuk numerik

ggplot(data = Cars93,
mapping = aes(x = Type, fill =as.factor(Passengers))) + 
geom_bar(position = "dodge", stat = "count") +
labs(x = "Type Penjualan Mobil", fill = "Kapasitas Penumpang",
y = "Banyak Mobil") +
scale_fill_brewer(palette = "Blues") +
theme_light()

Stacked Bar Chart

position = “stack” → Menampilkan batang bertumpuk.

geom_text() → Menampilkan angka dalam batang.

vjust → untuk peletakan posisi label

ggplot(data = Cars93,
mapping = aes(x = Type, fill =as.factor(Passengers))) + 
geom_bar(position = "stack", stat = "count") +
geom_text(aes(label=after_stat(count)), stat = "count", vjust = 0) +
labs(x = "Type Penjualan Mobil", fill = "Kapasitas Penumpang",
y = "Banyak Mobil") +
scale_fill_brewer(palette = "Purples") +
theme_light()

Pie Chart

Menyiapkan data dengan meringkas menjadi tabel frekuensi

dplyr → digunakan untuk mengolah data sebelum divisualisasikan.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:MASS':
## 
##     select
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
df <- Cars93 %>%
  group_by(Type) %>%
  summarise(counts = n())
df

Mengitung posisi label teks sebagai jumlah kumulatif proporsi.

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

Membuat grafik Pie Chart

ggplot(df, aes(x = "", y = prop, fill = Type)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  geom_text(aes(y = lab.ypos, label = prop), color = "black")+
  coord_polar("y", start = 0)+
  scale_fill_brewer(palette = "Set3")+
  theme_void()

Import dan Gabungkan Data Spasial (SHP)

sf → Untuk membaca file SHP.

writexl → Untuk menyimpan data ke Excel.

st_drop_geometry digunakan agar bisa disimpan dalam Excel.

library(writexl)
library(sf)
## Linking to GEOS 3.11.2, GDAL 3.8.2, PROJ 9.3.1; sf_use_s2() is TRUE
dat.Jatim <- read_sf(
"C:/Users/Acer/OneDrive - untirta.ac.id/Kuliah/MK/SEMESTER 4/Eksplorasi dan Visualisasi Data/PETA SHP 34 Prov/12-Jawa Timur/Export_Output_2.shp"
)

dataa.Jatim<- st_drop_geometry(dat.Jatim)

write_xlsx(dataa.Jatim,"Data Jawa Timur.xlsx")

Peta Spasial

library(readxl)
library(sf)
#Import Data Excel
data.Jatim=read_xlsx("Data Jawa Timur.xlsx",sheet = 1)
head(data.Jatim)
#IMPORT PETA SHP
shp.Jatim=read_sf(
"C:/Users/Acer/OneDrive - untirta.ac.id/Kuliah/MK/SEMESTER 4/Eksplorasi dan Visualisasi Data/PETA SHP 34 Prov/12-Jawa Timur/Export_Output_2.shp"
)

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

Pemetaan data Spasial

#Pemetaan Index longitude
plot.Jatim = ggplot(data=gabung.Jatim) +
  geom_sf(aes(fill = Longitude.x)) +
  scale_fill_viridis_c(option = "H")

plot.Jatim