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)
data("Cars93")
head(Cars93)
dim(Cars93)
## [1] 93 27
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")
freqtab <- as.data.frame(table(Cars93$Type))
freqtab
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()
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)
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")
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()
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()
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
df <- df %>%
arrange(desc(Type)) %>%
mutate(prop = round(counts*100/sum(counts), 1),
lab.ypos = cumsum(prop) - 0.5*prop)
head(df, 4)
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()
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")
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 Index longitude
plot.Jatim = ggplot(data=gabung.Jatim) +
geom_sf(aes(fill = Longitude.x)) +
scale_fill_viridis_c(option = "H")
plot.Jatim