Lewati ke konten utama

Memvisualisasikan Data Perubahan Iklim dengan ggplot2: Tutorial Langkah demi Langkah

Pelajari cara menggunakan ggplot2 di R untuk membuat visualisasi yang menarik dari data perubahan iklim. Tutorial langkah demi langkah ini mengajarkan Anda menemukan, menganalisis, dan memvisualisasikan data cuaca historis.
Diperbarui 29 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Tutorial ini merupakan kontribusi berharga dari komunitas kami dan telah diedit untuk kejelasan serta ketepatan oleh DataCamp.

Tertarik berbagi keahlian Anda? Kami ingin mendengarnya! Silakan kirimkan artikel atau ide Anda melalui Formulir Kontribusi Komunitas.

"Pemanasan global bukanlah prediksi. Itu sedang terjadi" - James Hansen

Perubahan iklim adalah isu mendesak yang memengaruhi kita semua, dan visualisasi data dapat menjadi alat yang ampuh untuk meningkatkan kepedulian. Dalam tutorial langkah demi langkah ini, Anda akan mempelajari cara menggunakan ggplot2 di R untuk membuat visualisasi yang berdampak dari data iklim historis. Pada akhir panduan ini, Anda akan tahu cara menemukan dataset kurasi, memplot data cuaca historis, dan menyesuaikan grafik Anda untuk menyampaikan cerita yang meyakinkan.

Perubahan iklim adalah isu mendesak yang memengaruhi kita semua, dan visualisasi data dapat menjadi alat yang ampuh untuk meningkatkan kepedulian. Dalam tutorial langkah demi langkah ini, Anda akan mempelajari cara menggunakan ggplot2 di R untuk membuat visualisasi yang berdampak dari data iklim historis. Pada akhir panduan ini, Anda akan tahu cara menemukan dataset kurasi, memplot data cuaca historis, dan menyesuaikan grafik Anda untuk menyampaikan cerita yang meyakinkan.

Dalam tutorial ini, Anda akan mempelajari di mana menemukan data suhu historis yang andal dan terkurasi serta memvisualisasikannya dengan ggplot2.

  • Mengetahui di mana menemukan dataset kurasi dengan data cuaca historis;
  • Merasa nyaman memplot data cuaca historis dengan ggplot2;
  • Mampu menyesuaikan grafik ggplot2 Anda untuk lebih baik menceritakan kisah Anda.

Langkah 1: Menemukan dan Memuat Data

Data untuk tutorial ini tersedia di National Centers for Environmental Information (NCEI). NCEI adalah otoritas terkemuka untuk data lingkungan di AS dan menyediakan data berkualitas tinggi tentang iklim, ekosistem, dan sumber daya air. Dataset Global Summary of the Year (GSOY) menawarkan data cuaca historis per kota dan stasiun. Untuk tutorial ini, kita akan menggunakan data dari Berkeley, CA. Anda dapat memilih kota yang Anda inginkan jika mau.

Data akan dimuat dengan read_csv. Argumen pertama adalah path berkas, sedangkan argumen kedua, col_select, memberi tahu R kolom mana yang ingin Anda muat. Perhatikan bahwa dataset ini berisi beberapa variabel, tetapi kita hanya tertarik pada "DATE" dan "TAVG". "DATE" berisi tahun saat suhu diamati dan "TAVG" adalah suhu rata-rata tahunan dalam derajat Celcius. Untuk mengetahui lebih lanjut tentang variabel yang tersedia, silakan lihat codebook dataset.

library(readr)2​3df <- read_csv('USC00040693.csv',4            col_select = c("DATE", "TAVG"))5​Rows: 118 Columns: 2── Column specification ────────────────────────────────────────────────────────Delimiter: ","dbl (2): DATE, TAVG

Di bawah ini, Anda akan mencetak dataset dan statistik ringkasnya untuk mendapatkan gambaran awal tentang data Anda. Fungsi R summary() memberi tahu kita bahwa data berkisar dari 1893 hingga 2019 dan bahwa suhu rata-rata tahunan minimal yang diamati adalah 12,9 °C di Berkeley, CA, dalam periode ini. Suhu rata-rata maksimum adalah 15,93 °C.

summary(df)      DATE           TAVG       Min.   :1893   Min.   :12.90   1st Qu.:1926   1st Qu.:13.50   Median :1956   Median :13.91   Mean   :1956   Mean   :13.97   3rd Qu.:1985   3rd Qu.:14.33   Max.   :2019   Max.   :15.93                  NA's   :33     

Langkah 2: Menangani Nilai Hilang

Fungsi summary() menunjukkan bahwa ada 33 suhu yang hilang. Anda juga dapat memeriksa NA pada variabel tertentu menggunakan fungsi is.na(), yang mengembalikan TRUE jika observasi adalah NA. Lalu, Anda dapat menjumlahkan semua nilai yang hilang. Fungsi sum() mengonversi TRUE menjadi 1.

print(paste("There are", sum(is.na(df$TAVG)), "missing values in this dataset."))[1] "There are 33 missing values in this dataset."

Karena kita bekerja dengan deret waktu, kita akan mengisi nilai yang hilang dengan interpolasi linear. Metode ini mengasumsikan data berubah secara linear selama periode yang hilang. Sebenarnya, ketika Anda memplot deret waktu menggunakan plot garis, interval antarobservasi, bahkan saat tidak ada data yang hilang, juga diisi dengan garis lurus yang menghubungkan dua titik.

Untuk melakukan interpolasi linear, kita akan menggunakan paket imputeTS. Setelah menginstal dan memuat pustaka, Anda dapat menggunakan na_interpolation() untuk mengisi nilai yang hilang. Anda meneruskan dua argumen. Pertama, kolom dataframe yang ingin Anda tangani, dan kedua, metode yang ingin Anda gunakan untuk melakukan imputasi.

install.packages("imputeTS", quiet = TRUE)
library(imputeTS)Registered S3 method overwritten by 'quantmod':  method            from  as.zoo.data.frame zoo 
df$TAVG <- na_interpolation(df$TAVG, option ="linear")

Langkah 3: Menulis Versi Pertama Plot Kita

Sebuah visualisasi ggplot2 dibangun dari layer. Seperti terlihat pada gambar di bawah, setiap layer berisi satu objek geom, yaitu satu elemen yang Anda lihat di grafik (misalnya garis dan titik).

Pertama, Anda perlu meneruskan sebuah dataset ke fungsi ggplot(). Kedua, Anda akan memetakan variabel ke estetika - properti visual dari objek geom. Estetika mencakup posisi pada sumbu-y, posisi pada sumbu-x, warna, atau ukuran, misalnya. Untuk mempelajari lebih lanjut tentang ggplot, lihat kursus Pengenalan Visualisasi Data dengan ggplot2 oleh Rick Scavetta, tempat saya banyak belajar keterampilan visualisasi data.

Layer ggplot2. Gambar dibuat oleh Penulis.

Di bawah ini, pemetaan kita (aes()) memberi tahu ggplot untuk membuat posisi pada sumbu-x bergantung pada variabel "DATE" dan posisi pada sumbu-y bergantung pada suhu. Perhatikan bahwa jika Anda hanya memplot layer ini, ggplot hanya akan menampilkan sumbu.

Selain itu, sebelum mulai menggunakan ggplot, kita akan menetapkan beberapa konfigurasi global yang ingin kita terapkan pada semua plot. Konfigurasi pertama adalah ukuran dan resolusi plot. Yang kedua adalah tema.

library(ggplot2)options(repr.plot.width = 10, repr.plot.height = 6, repr.plot.res = 150 )theme_set(theme_bw())
axes <- ggplot(data = df, aes(x = DATE, y = TAVG))axes

Sekarang Anda dapat menambahkan layer kedua dengan titik yang menunjukkan suhu sepanjang waktu. Perhatikan bahwa Anda dapat menambahkan layer ke plot yang Anda buat pada langkah sebelumnya.

dot_plot <- axes + geom_point()dot_plot

Terakhir, Anda dapat menambahkan layer ketiga yang berisi garis. Penting untuk digarisbawahi bahwa beberapa penulis berpendapat bahwa garis tidak mewakili data yang diamati dan harus digunakan dengan hati-hati. Untuk diskusi lengkap, silakan lihat bab 13 dari Fundamentals of Data Visualization oleh Claus O. Wilke.

dot_plot +geom_line()

Langkah 4: Menyesuaikan Plot Anda

Di bagian ini, Anda akan mempelajari cara menyesuaikan plot agar jelas, informatif, dan indah.

Pertama, untuk membuat peningkatan suhu lebih terlihat, kita akan memetakan estetika warna titik ke "TAVG" juga. Karena ini adalah variabel numerik, ggplot2 akan menggunakan gradasi untuk merepresentasikan nilai kontinu sebagai warna. Anda dapat memilih warna yang akan mewakili suhu rendah maupun tinggi dengan fungsi scale_color_gradient().

Selain itu, Anda dapat mengatur label sumbu x dan y masing-masing dengan xlab() dan ylab(). Judul dapat ditambahkan dengan ggtitle(). Terakhir, kita akan memperbesar ukuran titik dan menambahkan transparansi untuk membuat data yang tumpang tindih menjadi terlihat.

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = "#47BEFB", high = "#ED6AA8")+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")

Edward Tufte, seorang pakar di bidang visualisasi data, merekomendasikan memaksimalkan proporsi tinta yang digunakan untuk menampilkan data yang tidak redundan. Penulis berpendapat bahwa hal itu membuat plot Anda lebih jelas dan menghindari distraksi bagi pembaca.

Tema ggplot2 yang kita gunakan (theme_bw()) sudah sejalan dengan rekomendasi Tufte, tetapi kita masih bisa menghilangkan grid panel pada plot di atas. Untuk mencapainya, gunakan fungsi theme() dan teruskan dua argumen, panel.grid.minor = element_blank() dan panel.grid.major = element_blank().

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low =  "#47BEFB", high = "#ED6AA8")+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme(# Eliminates grids:        panel.grid.minor = element_blank(),        panel.grid.major = element_blank())

Langkah 5: Membuat Tema ggplot2 untuk Visualisasi Anda

Sekarang Anda akan mempelajari cara membuat tema ggplot2 Anda sendiri. Sebagai contoh, kita akan membuat theme_datacamp() agar plot kita lebih selaras dan harmonis dengan situs web DataCamp.

Pertama, sebuah list dengan beberapa warna DataCamp dibuat untuk digunakan nanti.

datacamp_colors <- list(green = "#74F065",                         darkblue = "#05192D",                         blue = "#47BEFB",                         pink = "#ED6AA8")

Kedua, kita akan memuat Google Font bernama "Manjari" untuk digunakan dalam tema kita. Anda dapat dengan mudah memuatnya dengan paket "showtext". Jika Anda belum memilikinya, silakan instal terlebih dahulu.

install.packages("showtext", quiet = TRUE)

Di bawah ini, kita memuat paketnya dan menggunakan fungsi font_add_google() untuk memuat "Manjari". Kita juga memberi tahu R untuk merender teks menggunakan "showtext" dengan showtext_auto():

library(showtext)font_add_google("Manjari")showtext_auto()Loading required package: sysfontsLoading required package: showtextdb

Sekarang, kita akan menggunakan theme() untuk menyesuaikan grafik. Gambar di bawah menunjukkan beberapa argumen yang dapat Anda gunakan. Untuk daftar lengkap, silakan lihat referensi ggplot2.

 

Argumen tema. Gambar dibuat oleh Penulis.

Anda dapat membuat tema baru dengan sebuah fungsi yang memanggil fungsi theme() dari ggplot2 yang berisi spesifikasi kustom Anda. Perhatikan bahwa kita mulai dari tema hitam-putih (theme_bw()) lalu menghilangkan grid dan mengubah warna latar belakang, panel, dan teks. Selain itu, margin 0,5 cm ditambahkan ke plot. Untuk memudahkan perubahan di masa depan, dua argumen dibuat agar pengguna dapat menentukan warna teks, panel, dan latar belakang yang diinginkan.

theme_datacamp <- function(text_panel_color, background_color) {  theme_bw()+  theme(text=element_text(size=28, family="Manjari", face = "bold", color = text_panel_color),    	# Eliminates grids        panel.grid.minor = element_blank(),        panel.grid.major = element_blank(),    	# Changes panel, plot and legend background to dark blue        panel.background = element_rect(fill = background_color),        plot.background = element_rect(fill =  background_color),        legend.background = element_rect(fill= background_color),        # Changes legend texts color to white        legend.text =  element_text(color = text_panel_color,                                     margin = margin(0, 0, 0, -0.5, "cm")),        legend.title = element_text(color = text_panel_color),        legend.text.align = 0,        # Changes color of plot border to white        panel.border = element_rect(size = 1, color = text_panel_color),        # Changes color of axis texts to white        axis.text.x = element_text(color = text_panel_color),        axis.text.y = element_text(color = text_panel_color),        axis.title.x = element_text(color= text_panel_color),        axis.title.y = element_text(color= text_panel_color),        # Changes axis ticks color to white        axis.ticks.y = element_line(color = text_panel_color),        axis.ticks.x = element_line(color = text_panel_color),        # Adds margin        plot.margin = margin(1, 1, 1, 1, "cm")  )}

Sekarang, Anda cukup menambahkan theme_datacamp() ke plot Anda, dengan menentukan warna pilihan Anda. Di sini, saya menggunakan warna Datacamp:

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green,                background_color = datacamp_colors$darkblue)

Terakhir, Anda dapat menampilkan tren suhu dengan smoother LOESS (locally estimated scatterplot smoothing), seperti yang direkomendasikan oleh Claus O. Wilke dalam Bab 14 dari Fundamentals of Data Visualization. Anda dapat melakukannya dengan menambahkan sebuah layer ggplot yang berisi elemen geom_smooth().

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+geom_smooth(color = datacamp_colors$green, se = FALSE)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA",       subtitle = "Visualization using theme_datacamp()")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green,                background_color = datacamp_colors$darkblue)

Silakan uji kombinasi warna dan font lain untuk menghasilkan visualisasi yang paling kuat. Di bawah ini, misalnya, saya mengubah kurva LOESS, panel, dan warna teks menjadi putih.

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+geom_smooth(color = "white", se = FALSE)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA",       subtitle = "Visualization using theme_datacamp()")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = "white",                background_color = datacamp_colors$darkblue)

Kesimpulan

Dalam tutorial ini, Anda telah mempelajari cara menggunakan ggplot2 di R untuk memvisualisasikan data iklim historis secara efektif. Kita telah membahas mulai dari mencari data yang andal hingga membuat tema ggplot2 kustom, membekali Anda dengan keterampilan untuk meningkatkan kepedulian tentang perubahan iklim melalui visualisasi data.

Sebagai langkah berikutnya, pertimbangkan untuk mendalami visualisasi data dan pemrograman R dengan kursus DataCamp Pengenalan Visualisasi Data dengan ggplot2 dan R Tingkat Menengah. Kursus-kursus ini akan membantu Anda membangun keterampilan yang telah diperoleh di sini dan memungkinkan Anda mengerjakan proyek yang lebih kompleks.

Topik
R
Analisis Data
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya