knitr::opts_chunk$set(echo = TRUE, warning = FALSE, message = FALSE)
Deskripsi chart / jenis visualisasi:
Choropleth adalah peta tematik yang mewarnai area geografis berdasarkan
nilai tertentu, misalnya populasi, tingkat pengangguran, atau angka
kasus penyakit.
Kapan / untuk apa chart ini digunakan:
Digunakan untuk menampilkan distribusi data kuantitatif secara spasial.
Cocok untuk melihat perbedaan antar wilayah secara visual dan cepat.
Penjelasan singkat tentang cara membaca chart:
Warna atau intensitas warna pada tiap area mewakili besarnya nilai.
Warna lebih gelap atau lebih terang menunjukkan nilai yang lebih tinggi
atau lebih rendah, tergantung skala yang dipilih.
library(ggplot2)
library(dplyr)
library(viridis)
library(maps)
# Data peta dunia
world_map <- map_data("world")
# Data populasi ASEAN (juta jiwa)
asean_pop <- data.frame(
region = c("Indonesia", "Philippines", "Vietnam", "Thailand",
"Myanmar", "Malaysia", "Cambodia", "Laos",
"Singapore", "Timor-Leste", "Brunei"),
population = c(284, 119, 100, 72, 57, 35, 18, 7.8, 6.2, 1.5, 0.47)
)
# Perbaiki nama negara supaya match peta
world_map <- world_map %>%
mutate(region = case_when(
region == "Timor" ~ "Timor-Leste",
region == "Brunei" ~ "Brunei",
TRUE ~ region
))
# Ambil titik tengah tiap negara untuk label
centroids <- world_map %>%
filter(region %in% asean_pop$region) %>%
group_by(region) %>%
summarise(long = mean(range(long)), lat = mean(range(lat))) %>%
inner_join(asean_pop, by = "region")
# Gabungkan data populasi dengan peta
map_data_join <- world_map %>%
filter(region %in% asean_pop$region) %>%
left_join(asean_pop, by = "region")
# Plot choropleth ASEAN dengan label nama negara saja
ggplot() +
geom_polygon(
data = map_data_join,
aes(long, lat, group = group, fill = population),
color = "white", linewidth = 0.3
) +
geom_text(
data = centroids,
aes(x = long, y = lat, label = region),
size = 3, color = "black", fontface = "bold"
) +
scale_fill_viridis(
option = "plasma",
na.value = "grey90",
name = "Populasi (juta jiwa)"
) +
labs(
title = "Populasi Negara ASEAN"
) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", size = 16),
legend.title = element_text(face = "bold")
)
Deskripsi chart / jenis visualisasi:
Sunburst chart adalah diagram berbentuk lingkaran konsentris yang
menunjukkan data hierarkis. Setiap lingkaran mewakili level hierarki,
dari pusat ke luar.
Kapan / untuk apa chart ini digunakan:
Digunakan untuk menampilkan struktur hierarki sekaligus proporsi tiap
cabang, misalnya organisasi, wilayah geografis, atau kategori
produk.
Penjelasan singkat tentang cara membaca chart:
Ukuran atau panjang tiap segmen mewakili nilai relatif atau proporsi.
Cabang dari pusat menunjukkan hubungan hierarki antar level.
library(plotly)
labels <- c("Universitas",
"Fakultas Sains", "Fakultas Ekonomi", "Fakultas Teknik",
"Matematika", "Biologi", "Manajemen", "Akuntansi", "Informatika", "Sipil")
parents <- c("",
"Universitas", "Universitas", "Universitas",
"Fakultas Sains", "Fakultas Sains",
"Fakultas Ekonomi", "Fakultas Ekonomi",
"Fakultas Teknik", "Fakultas Teknik")
values <- c(NA, 200, 150, 180, 80, 120, 70, 80, 100, 80)
# Tambahkan warna custom
colors <- viridis::viridis(length(labels))
fig <- plot_ly(
labels = labels,
parents = parents,
values = values,
type = "sunburst",
branchvalues = "total",
marker = list(colors = colors)
)
fig <- fig %>% layout(title = "Sunburst Chart: Hierarki Universitas")
fig
Deskripsi chart / jenis visualisasi:
Heatmap adalah representasi data dua dimensi menggunakan warna untuk
menunjukkan intensitas nilai di setiap kombinasi kategori X dan Y.
Kapan / untuk apa chart ini digunakan:
Cocok untuk menampilkan korelasi, frekuensi, atau distribusi nilai pada
dua variabel. Misalnya jumlah penjualan tiap produk per bulan, atau
intensitas aktivitas per jam.
Penjelasan singkat tentang cara membaca chart:
Setiap kotak mewakili kombinasi X dan Y. Warna kotak menunjukkan nilai
atau intensitas, dengan gradasi warna menandakan tinggi-rendahnya
nilai.
library(ggplot2)
library(viridis)
set.seed(123)
# Produk: 6 jenis beras
produk <- c("Pandan Wangi", "Rojolele", "IR 64", "Setra Ramos", "Mentik Wangi", "Beras Merah Organik")
wilayah <- c("Jakarta", "Bandung", "Surabaya", "Medan", "Makassar")
# Buat data simulasi penjualan
heatmap_data <- expand.grid(Produk = produk, Wilayah = wilayah)
heatmap_data$Penjualan <- sample(500:5000, nrow(heatmap_data), replace = TRUE) # dalam kg
# Heatmap
ggplot(heatmap_data, aes(x = Produk, y = Wilayah, fill = Penjualan)) +
geom_tile(color = "white", linewidth = 0.7) +
scale_fill_viridis_c(option = "C") +
labs(title = "Heatmap: Simulasi Penjualan 6 Jenis Beras di 5 Kota Indonesia",
x = "Jenis Beras", y = "Kota", fill = "Penjualan (kg)") +
theme_minimal(base_size = 12) +
theme(
axis.text.x = element_text(angle = 45, hjust = 1),
panel.grid = element_blank()
)
Deskripsi chart / jenis visualisasi:
Streamgraph adalah variasi dari stacked area chart, menampilkan
perubahan beberapa kategori sepanjang waktu dalam bentuk aliran yang
mengalir dan organik.
Kapan / untuk apa chart ini digunakan:
Digunakan untuk menampilkan tren atau proporsi multikategori sepanjang
periode tertentu. Misalnya jumlah penjualan beberapa produk tiap
tahun.
Penjelasan singkat tentang cara membaca chart:
Tinggi tiap aliran menunjukkan besarnya nilai untuk kategori tertentu
pada titik waktu tertentu. Lebar visual di sepanjang sumbu X menunjukkan
variasi atau tren nilai dari waktu ke waktu.
library(ggplot2)
library(ggstream)
library(dplyr)
set.seed(123)
# Data simulasi
stream_data <- data.frame(
year = rep(2010:2020, each = 4),
kategori = rep(c("Kursi", "Meja", "Lemari", "Rak Buku"), times = 11),
value = sample(50:300, 44, replace = TRUE) # jumlah unit terjual
)
# Streamgraph dengan sumbu X hanya menampilkan tahun utuh
ggplot(stream_data, aes(x = year, y = value, fill = kategori)) +
geom_stream(type = "ridge") +
scale_fill_manual(values = c("#4B0082", "#1E90FF", "#20B2AA", "#FF8C00")) +
scale_x_continuous(breaks = 2010:2020) + # hanya tahun utuh
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(size = 18, face = "bold", hjust = 0.5),
legend.position = "top",
legend.title = element_text(face = "bold")
) +
labs(
title = "Streamgraph: Tren Penjualan Furnitur (2010–2020)",
x = "Tahun",
y = "Jumlah Unit Terjual (pcs)",
fill = "Jenis Furnitur"
)
Deskripsi chart / jenis visualisasi:
Topographic map adalah peta yang menampilkan elevasi atau relief
permukaan tanah menggunakan warna, shading, dan garis kontur.
Kapan / untuk apa chart ini digunakan:
Digunakan untuk melihat variasi ketinggian wilayah, relief bukit dan
lembah, serta mempermudah analisis geografi atau perencanaan ruang.
Penjelasan singkat tentang cara membaca chart:
Warna dan garis kontur menunjukkan elevasi; warna lebih gelap atau lebih
terang menandakan daerah lebih tinggi atau lebih rendah. Garis kontur
membantu membedakan perubahan ketinggian dengan lebih jelas.
library(ggplot2)
library(viridis)
# Simulasi elevasi kecil (misal kabupaten)
set.seed(123)
x <- seq(0, 10, length.out = 50)
y <- seq(0, 10, length.out = 50)
grid <- expand.grid(X = x, Y = y)
grid$Z <- with(grid, 500 + 50*sin(X) + 30*cos(Y) + rnorm(2500,0,5)) # variasi bukit kecil
# Topographic map kabupaten
ggplot(grid, aes(X, Y, fill = Z)) +
geom_raster() +
geom_contour(aes(z = Z), color = "black", alpha = 0.5) +
scale_fill_viridis(option = "terrain") +
labs(title = "Topographic Map Simulasi Kabupaten",
fill = "Elevasi (m)") +
theme_minimal() +
theme(
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank()
)