Langsung ke konten utama

Visualisasi Peta dengan Data Teks di R: Sebuah Tutorial Singkat

Visualisasi Peta Spasial Data Teks di R

Analisis spasial merupakan jenis analisis yang semakin diminati hingga saat ini. Tak sedikit riset atau penelitian yang di dalamnya menggunakan analisis spasial. Analisis ini ditengarai dengan pemanfaatan visual berbasis peta kemudian diintegrasikan dengan data tertentu untuk mendapatkan deskripsi mengenai sebaran, dampak, efek limpahan (spillover effect), atau klaster tertentu penelitian.

Kalau dengan ARCGIS atau QGIS, visualisasi analisis spasial dilakukan dengan melakukan import peta dan data lalu diintegrasikan serta divisualkan secara otomatis tanpa coding, berbeda dengan ketika kita menggunakan R atau bahasa pemrograman lainnya seperti Python. Kita perlu melakukan coding sehingga diperlukan keterampilan atau pengalaman dalam meng-costumize visualisasi spasial.

Tetapi, kelebihan dari pemanfaatan coding di sini adalah keleluasaan kita dalam melakukan custome terhadap output peta spasial yang kita harapkan sehingga diperoleh visualisasi data seoptimal mungkin dan semenarik mungkin.

Di R sendiri, beberapa package yang diperlukan dalam aktivitas visualisasi spasial terdiri atas rgdal, ggplot2, sf, dan ggspatial. Package rgdal berfungsi untuk melakukan import peta ke dalam R, termasuk juga dengan fungsi dari sf, sedangkan ggspatial dapat dimanfaatkan untuk memunculkan kompas atau arah mata angin serta skala peta. Adapun ggplot2 memiliki fungsi untuk menghasilkan visualisasi peta spasial. Oiya, sebagai catatan, dalam praktikum kali ini peta yang digunakan adalah peta berformat *shp dan polygon atau geometri.

Beberapa langkah yang dilakukan untuk memvisualisasikan peta spasial dengan data teks berupa status potensi pembangunan agroindustri kopi di Jawa Tengah selama 2018-2023 adalah sebagai berikut:


vispeta_teks.knit

# Aktivasi beberapa package
library(readxl)
library(rgdal)
## Loading required package: sp
## Warning: package 'sp' was built under R version 4.4.1
## Please note that rgdal will be retired during October 2023,
## plan transition to sf/stars/terra functions using GDAL and PROJ
## at your earliest convenience.
## See https://r-spatial.org/r/2023/05/15/evolution4.html and https://github.com/r-spatial/evolution
## rgdal: version: 1.6-7, (SVN revision (unknown))
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 3.6.2, released 2023/01/02
## Path to GDAL shared files: C:/Users/BPS Prov Jawa Timur/AppData/Local/R/win-library/4.4/rgdal/gdal
##  GDAL does not use iconv for recoding strings.
## GDAL binary built with GEOS: TRUE 
## Loaded PROJ runtime: Rel. 9.2.0, March 1st, 2023, [PJ_VERSION: 920]
## Path to PROJ shared files: C:/Users/BPS Prov Jawa Timur/AppData/Local/R/win-library/4.4/rgdal/proj
## PROJ CDN enabled: FALSE
## Linking to sp version:1.6-0
## To mute warnings of possible GDAL/OSR exportToProj4() degradation,
## use options("rgdal_show_exportToProj4_warnings"="none") before loading sp or rgdal.
library(ggplot2)
library(sf)
## Linking to GEOS 3.12.1, GDAL 3.8.4, PROJ 9.3.1; sf_use_s2() is TRUE
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggspatial) # package untuk kompas dan skala peta
# import peta dan data
jateng <- readOGR(dsn = "D:\\Joko Ade\\KERJAAN 2024\\petajateng", layer = "jateng")
## Warning in readOGR(dsn = "D:\\Joko Ade\\KERJAAN 2024\\petajateng", layer =
## "jateng"): OGR support is provided by the sf and terra packages among others
## Warning in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv =
## use_iconv, : OGR support is provided by the sf and terra packages among others
## Warning in ogrFIDs(dsn = dsn, layer = layer): OGR support is provided by the sf
## and terra packages among others
## Warning in OGRSpatialRef(dsn, layer, morphFromESRI = morphFromESRI, dumpSRS =
## dumpSRS, : OGR support is provided by the sf and terra packages among others
## Warning in ogrListLayers(dsn): OGR support is provided by the sf and terra
## packages among others
## Warning in ogrFIDs(dsn = dsn, layer = layer): OGR support is provided by the sf
## and terra packages among others
## OGR data source with driver: ESRI Shapefile 
## Source: "D:\Joko Ade\KERJAAN 2024\petajateng", layer: "jateng"
## with 35 features
## It has 5 fields
jateng$NAMA_KAB <- gsub(" \\(City\\)", " \\(Kota\\)", jateng$NAMA_KAB)

kopi <- read_excel("kopi.xlsx")
# sekilas data
head(kopi)
## # A tibble: 6 × 6
##   Wilayah      `Rata-Rata LQ` Klassen     Status      `Status-2`           coba 
##   <chr>                 <dbl> <chr>       <chr>       <chr>                <chr>
## 1 Cilacap               0.354 Kuadran III Tidak Layak Potensian Non Basis  Pote…
## 2 Banyumas              0.490 Kuadran III Tidak Layak Potensian Non Basis  Pote…
## 3 Purbalingga           0.709 Kuadran IV  Tidak Layak Tertinggal Non Basis Tert…
## 4 Banjarnegara          5.65  Kuadran I   Tidak Layak Maju dan Berkembang… Maju…
## 5 Kebumen               0.272 Kuadran III Tidak Layak Potensian Non Basis  Pote…
## 6 Purworejo             0.450 Kuadran III Tidak Layak Potensian Non Basis  Pote…
jateng$Status2 <- kopi$coba

# konversi ke sf
jateng_sf <- st_as_sf(jateng)
# Menambahkan koordinat centroid untuk label
jateng_sf <- jateng_sf %>%
  mutate(centroid = st_centroid(geometry)) %>% # Menentukan centroid
  mutate(x = st_coordinates(centroid)[,1],    # Ekstrak koordinat x
         y = st_coordinates(centroid)[,2])   # Ekstrak koordinat y

# menentukan warna polygon
palette <- c("#fbbbbb", "#f78877", "#f45454", "#d11c4a", 
             "#b84384", "#8d2d6d", "#6f1959", "#5f0351")
# Visualisasi peta
ggplot(data = jateng_sf) +
  geom_sf(aes(fill = Status2), color = "#FBF8EF", size = 0.3) +
  scale_fill_manual(values = palette, name = "Status Kategori") + # Warna manual
  geom_text(aes(x = x, y = y, label = NAMA_KAB), size = 2, color = "black") +
  annotation_scale(location = "bl", 
                   width_hint = 0.2, 
                   bar_units = "km", 
                   height = unit(0.3, "cm"), 
                   text_cex = 0.8, 
                   scale = 1/100) +
  annotation_north_arrow(location = "tr", which_north = "true", 
                         style = north_arrow_fancy_orienteering) +
  theme_minimal() + 
  theme(legend.position = "right",
        panel.grid = element_blank(), # Hilangkan grid
        axis.text = element_blank(), # Hilangkan teks sumbu
        axis.ticks = element_blank(), # Hilangkan tanda sumbu
        axis.title = element_blank(), # Hilangkan keterangan sumbu
        axis.line = element_blank(), # Hilangkan garis sumbu
        panel.border = element_blank()) +
  labs(title = "Sebaran Potensi Pengembangan Agroindustri Kopi di Jawa Tengah",
       caption = "Sumber data: BPS (diolah)")
## Warning in annotation_scale(location = "bl", width_hint = 0.2, bar_units =
## "km", : Ignoring unknown parameters: `bar_units` and `scale`

Demikian sedikit sharing kita kali ini, jangan lupa untuk terus support blog ini dengan cara komentar dan share. Selamat memahami dan mempraktikkan!

Komentar

Postingan populer dari blog ini

Mencari P - Value dan Titik Kritis Uji F, Uji t, Uji Chi Square, dan Uji Z Normal dengan R

Mencari nilai p-value dan titik kritis Bagi teman-teman yang pernah mengenal statistika, pasti familier dengan istilah p-value dan titik kritis. P-value biasanya didefinisikan sebagai probabiltas atau peluang maksimal yang diamati dari hasil uji statistik, bahasa gampangnya adalah besarnya kesalahan penelitian berdasarkan uji statistik. Sebagai contoh sederhana, dari 100 orang dengan nama masing-masing dan diklasifikasikan ke dalam gender nama perempuan dan nama laki-laki, didapatkan nilai p-value uji statistiknya sebesar 0,05 atau 5%. Itu artinya, dari 100 orang, ada kemungkinan sebanyak 5 orang yang namanya salah klasifikasi. Dari namanya terdeteksi sebagai nama perempuan, padahal aktualnya yang bersangkutan bergender laki-laki. Sedangkan titik kritis atau titik uji adalah nilai batas pengujian hipotesis statistik, apakah masuk dalam wilayah tolak hipotesis, ataukah gagal menolaknya. Titik ini berkaitan erat dengan nilai p-value . Kalau biasanya kita mendapatkan kedua nilai ini da...

Cara Mendowload dan Install R serta RStudio di Windows (Step by Step)

Cara Download dan Install R serta R Studio di Windows Halo teman-teman, mohon maaf karena beberapa waktu ini, blog ini sempat vakum dari unggahan. Kali ini saya akan coba berbagai mengenai bagaimana cara mengunduh ( download ) dan menginstal ( install ) program R sekaligus R Studio khususnya di Windows. Unggahan kali ini sedikit terbalik karena semestinya saya unggah terlebih dahulu pertama kali di blog ini, namun bukan masalah, mengingat kemarin ada beberapa pihak yang meminta untuk menerangkap bagaimana tahapan mengunduh dan instalasi R dan R Studio, jadinya saya dahulukan pada unggahan ini sebelum pembahasan mengenai Data Mining , Data Science , atau bahasan Big Data kita terlampau jauh. Baik, kita akan mulai dengan bagaimana mengunduh R dan R Studio melalui mesin pencari Google. R dan R Studio ini memang beberapa waktu terakhir ini booming , apalagi dengan munculnya konsep mengenai Big Data , Data Modelling, Data Mining, dan Data Science serta Data Visualization . Sebenarnya, men...

Analisis Tipologi Klassen (Klassen Typology) dan Visualisasi Spasialnya dengan R

Tipologi Klassen dan visualisasinya dengan R Halo teman-teman, sebelumnya kita telah membahas tentang analisis Shift Share dan Location Quotient (LQ) dengan menggunakan R. Kali ini, kita akan membahas mengenai satu lagi alat analisis yang sebenarnya merupakan alat analisis tiga serangkai dari SS dan LQ, yaitu analisis Tipologi Klassen. Dalam penelitian ekonomi kewilayahan, ketiga analisis ini seringkali digunakan, baik dalam rangka melihat perkembangan dan transformasi struktur ekonomi suatu wilayah maupun melihat keunggulan kompetitif dan keunggulan komparatif wilayah satu dengan wilayah lainnya dengan mengacu wilayah referensi. Terlebih dulu, sebelum melakukan visualisasi spasial menggunakan fungsi plot(), ada baiknya kita bahas terlebih dahulu mengenai Tipologi Klassen itu sendiri. Tipologi Klassen merupakan teknik pengelompokan sektor, subsektor, lapangan usaha, atau komoditas tertentu di wilayah analisis berdasarkan pertumbuhan nilai tambah wilayah analisis terhadap nasional atau...