Ngomongin olah data dengan visualisasi akan sangat menarik jika disajikan dalam sebuah peta. Visualisasi data yang membentuk peta berasal dari format geojson yang berisi koordinat longitudinal dan latitude. Visualisasi data dengan peta Heat Map menggunakan ggplot seperti biasanya.
Format geojson Indonesia bisa kalian peroleh di http://www.info-geospasial.com/2015/10/data-shp-seluruh-indonesia.html tapi bila kalian ingin langsung download di https://github.com/superpikar/indonesia-geojson
Package ggplot
Untuk membuat peta menggunakan ggplot sangat mudah, ketika sudah loading geojson, langsung diubah ke tidy untuk didapatkan koordinat x dan y serta groupnya dengan nama variabel baru yaitu spdf2
library(geojsonio) library(ggplot2) library(broom) spdf <- geojson_read("indonesia-geojson/indonesia-edit.geojson", what = "sp") spdf2 = tidy(spdf) ggplot() + geom_polygon(data = spdf2, aes( x = long, y = lat, group = group), color="black", size=0.1, fill='grey') + theme_void() + labs(title = "Peta", subtitle = "Negara Indonesia", caption = "Data source: bakosurtanal", x = "longitudinal", y = "latitude")+ coord_map()
Peta indonesia diatas masih versi yang lama, yaitu terdiri dari 33 provinsi, yuk kita cek
daftar.provinsi = data.frame(REGION=toupper(spdf@data$state)) daftar.provinsi
Berikut data nama provinsi pada peta diatas
REGION 1 ACEH 2 SUMATERA BARAT 3 YOGYAKARTA 4 SUMATERA UTARA 5 BANGKA-BELITUNG 6 IRIAN JAYA BARAT 7 JAWA TIMUR 8 KALIMANTAN BARAT 9 KALIMANTAN SELATAN 10 KALIMANTAN TIMUR 11 KEPULAUAN RIAU 12 LAMPUNG 13 MALUKU 14 MALUKU UTARA 15 NUSA TENGGARA BARAT 16 NUSA TENGGARA TIMUR 17 PAPUA 18 RIAU 19 SULAWESI SELATAN 20 BENGKULU 21 SULAWESI TENGAH 22 SULAWESI UTARA 23 SULAWESI TENGGARA 24 BALI 25 BANTEN 26 GORONTALO 27 JAKARTA RAYA 28 JAMBI 29 JAWA BARAT 30 JAWA TENGAH 31 KALIMANTAN TENGAH 32 SULAWESI BARAT 33 SUMATERA SELATAN
Walaupun masih 33 provinsi itu nanti kita update lagi jikalau ada yang terbaru.
Peta Range UMR Selindo
Nah kita akan memvisualisasikan range UMR selindo, melalui Visualisasi data dengan Peta Heat Map dapat menggambarkan secara visual provinsi yang mempunyai UMR tertinggi. Data tersebut bisa kita ambil di https://www.kaggle.com/datasets/linkgish/indonesian-salary-by-region-19972022 mulai rentang tahun 1997 sampai 2022 lho.
Langsung saja kita akan visualisasikan UMR tahun 2022
salary.provinsi = read.csv("indonesia salary region/Indonesian Salary by Region (1997-2022).csv") salary.2022 = salary.provinsi %>% filter(YEAR==2022)
dengan hasil sebagai berikut
REGION SALARY YEAR 1 ACEH 3166460 2022 2 SUMATERA UTARA 2522609 2022 3 SUMATERA BARAT 2512539 2022 4 RIAU 2938564 2022 5 JAMBI 2649034 2022 6 SUMATERA SELATAN 3144446 2022 7 BENGKULU 2238094 2022 8 LAMPUNG 2440486 2022 9 KEP. BANGKA BELITUNG 3264881 2022 10 KEP. RIAU 3050172 2022 11 DKI JAKARTA 4452724 2022 12 JAWA BARAT 1841487 2022 13 JAWA TENGAH 1813011 2022 14 DI YOGYAKARTA 1840951 2022 15 JAWA TIMUR 1891567 2022 16 BANTEN 2501203 2022 17 BALI 2516971 2022 18 NUSA TENGGARA BARAT 2207212 2022 19 NUSA TENGGARA TIMUR 1975000 2022 20 KALIMANTAN BARAT 2434328 2022 21 KALIMANTAN TENGAH 2922516 2022 22 KALIMANTAN SELATAN 2906473 2022 23 KALIMANTAN TIMUR 3014497 2022 24 KALIMANTAN UTARA 3016738 2022 25 SULAWESI UTARA 3310723 2022 26 SULAWESI TENGAH 2390739 2022 27 SULAWESI SELATAN 3165876 2022 28 SULAWESI TENGGARA 2710595 2022 29 GORONTALO 2800580 2022 30 SULAWESI BARAT 2678863 2022 31 MALUKU 2619312 2022 32 MALUKU UTARA 2862231 2022 33 PAPUA BARAT 3200000 2022 34 PAPUA 3561932 2022 35 INDONESIA 2644709 2022
Operasi Join
Operasi selanjutnya yaitu join antara daftar.provinsi dan salary.2022 dengan operasi left_join
cek = left_join(daftar.provinsi,salary.2022,by="REGION") cek
ternyata ada beberapa nama provinsi di salary.2022 yang tidak cocok dengan daftar.provinsi yaitu
REGION SALARY YEAR 1 YOGYAKARTA NA NA 2 BANGKA-BELITUNG NA NA 3 IRIAN JAYA BARAT NA NA 4 KEPULAUAN RIAU NA NA 5 JAKARTA RAYA NA NA
Sekarang kita ganti saja nama provinsi di salary.2022 menjadi seperti berikut
salary.2022 = salary.2022 %>% mutate(REGION=ifelse(REGION=="DI YOGYAKARTA","YOGYAKARTA",REGION)) salary.2022 = salary.2022 %>% mutate(REGION=ifelse(REGION=="KEP. BANGKA BELITUNG","BANGKA-BELITUNG",REGION)) salary.2022 = salary.2022 %>% mutate(REGION=ifelse(REGION=="KEP. RIAU","KEPULAUAN RIAU",REGION)) salary.2022 = salary.2022 %>% mutate(REGION=ifelse(REGION=="DKI JAKARTA","JAKARTA RAYA",REGION)) salary.2022 = salary.2022 %>% mutate(REGION=ifelse(REGION=="PAPUA BARAT","IRIAN JAYA BARAT",REGION))
Sekalian diurutkan juga Salary dari besar ke kecil
salary.2022 = salary.2022 %>% arrange(desc(SALARY))
Selanjutnya membuat color gradient dari hijau ke kuning
colfunc <- colorRampPalette(c("green", "yellow")) salary.2022$kategori = colfunc(nrow(salary.2022))
gabungkan antara daftar.provinsi dan salary.2022
daftar.provinsi = left_join(daftar.provinsi,salary.2022,by="REGION") daftar.provinsi$id = c(1:nrow(daftar.provinsi))
kemudian kita lakukan operasi join lagi dari daftar.provinsi dan spdf2
spdf2$id = as.numeric(spdf2$id) spdf2 = inner_join(spdf2,daftar.provinsi,by="id")
Sekarang kita visualisasikan kedalam peta
ggplot() + geom_polygon(data = spdf2, aes( x = long, y = lat, group = group), color="black",size=0.1,fill=spdf2$kategori) + labs(title = "Gaji UMR Tahun 2022", subtitle = "Selindo", caption = "Data source: BPS", x = "longitudinal", y = "latitude")+ #theme_void() + coord_map()
dari peta dapat ditunjukan
- bahwa jawa timur, DIY, Jateng mempunyai UMR yang terkecil.
- Kalbar merupakan daerah kalimantan yang mempunyai UMR terendah dibandingkan dengan provinsi yang ada di pulau kalimantan
Perkembangan tahun 2000 cukup berbeda dengan 2022