Line Plot Kecamatan per Kelurahan

Package

library(tidyverse) #ggplot2
library(sf)
library(gt)
library(jsonlite)
library(ggrepel)
library(readxl)

Data

stunting_smg <- read_csv("datasets/stunting.csv") # sumber: BPS

Kecamatan 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)