library(tidyverse) #ggplot2
library(sf)
library(gt)
library(jsonlite)
library(ggrepel)
library(readxl)Line Plot Kecamatan per Kelurahan
Package
Data
stunting_smg <- read_csv("datasets/stunting.csv") # sumber: BPSKecamatan Mijen per Kelurahan
# Contoh line plot di Kecamatan Mijen
stunting_smg_2 <- stunting_smg |>
filter(kec == "Kecamatan Mijen") |>
pivot_longer(c(`2022`,`2023`),
names_to = "tahun",
values_to = "jumlah_stunting")# Visualisasi line plot
stunting_smg_2 |>
ggplot(aes(x = tahun,
y = jumlah_stunting,
group = desa,
color = desa)) +
geom_line() +
labs(title = "Tingkat Stunting Per Desa di Kecamatan Mijen",
x = "Tahun",
y = "Jumlah stunting") +
geom_text_repel(aes(label = desa),
data = stunting_smg_2 |> filter(tahun == "2022"),
size = 1.75,
xlim = c(NA, 0.9), hjust = 1,
segment.alpha = 0.3, segment.linetype = "dotted") +
theme_minimal() +
theme(legend.position = "none")
Loop untuk semua kecamatan
# Membuat fungsi plot
tingkat_stunting <- function(kecamatan) {
stunting_smg_2 <- stunting_smg |>
filter(kec == kecamatan) |>
pivot_longer(c(`2022`,`2023`),
names_to = "tahun",
values_to = "jumlah_stunting")
stunting_smg_2 |>
ggplot(aes(x = tahun,
y = jumlah_stunting,
group = desa,
color = desa)) +
geom_line() +
labs(title = paste("Tingkat Stunting Per Desa di", kecamatan)) +
geom_text_repel(aes(label = desa),
data = stunting_smg_2 |> filter(tahun == "2022"),
size = 1.75,
xlim = c(NA, 0.9), hjust = 1,
segment.alpha = 0.3, segment.linetype = "dotted") +
theme_minimal() +
theme(legend.position = "none")
}# Daftar kecamatan di Kota Semarang
daftar_kec <- stunting_smg |>
distinct(kec) |>
pull()# Mencoba fungsi yang sudah dibuat
tingkat_stunting("Kecamatan Mijen")
# Loop fungsi tingkat_stunting untuk semua kecamatan
tingkat_stunting_list <- list()
for (i in daftar_kec) {
tingkat_stunting_list[[i]] <- tingkat_stunting(i)
}# Loop simpan plot
for (i in daftar_kec) {
ggsave(filename = paste0("ggsave/", i, ".png"),
plot = tingkat_stunting_list[[i]],
width = 7, height = 5)
}Hasil loop (contoh 3)


