Di awal bulan Agustus, masyarakat Indonesia pada umumnya sibuk mempersiapkan hajatan negara. Mereka secara serentak memasang bendera merah putih, spanduk, umbul-umbul, bersih-bersih desa, dan lain sebagainya. Berbagai perlombaan pun dilakukan. Mulai dari sepak bola, bola voli, bulu tangkis, tenis meja, sampai panjat pinang. Itu semua merupakan luapan suka cita kemerdekaan dan harapan ke depan.
Nusantara Baru, Indonesia Maju. Itulah tema besar peringatan hari ulang tahun ke-79 kemerdekaan Republik Indonesia. Peringatan HUT ke-79 RI tersebut tentu memiliki banyak makna dan harapan. Menariknya, makna dan harapan tersebut tergambar dalam logo numerik yang digunakan. Salah satu harapannya adalah pertumbuhan ekonomi.
Berdasarkan panduan identitas visualnya, angka tujuh pada logo tersebut menyerupai anak panah yang mengarah ke kanan-atas. Dalam bahasa Statistika, angka tersebut menyimbolkan tren yang naik. Perhatikan Gambar 1. Hal itu melambangkan harapan Indonesia untuk meningkatkan investasi dan ekspornya sehingga bertumbuh ekonominya.
Nah, kita akan melihat harapan besar itu, khususnya dalam hal investasi. Kita akan menggunakan data realisasi penanaman modal asing pada periode 2010 – 2024 dari Kementerian Investasi/BKPM. Data tersebut kita manfaatkan untuk memvisualisasikan dan melihat tren realisasi penanaman modal dari berbagai negara.
Kita akan memvisualisasikan data tersebut dengan pemrograman R. Untuk melakukannya, kita menggunakan paket {tidyverse}, {ggstream}, dan {ggtext}. Untuk itu kita perlu memastikan ketiga paket tersebut telah terpasang. Jika sudah, kita dapat memanggilnya dengan kode seperti berikut.
Menjelajah Data
Mari singsingkan lengan baju kita. Dengan semangat kemerdekaan (agak berlebihan tak apa), kita mulai penjelahan data. Data realisasi penanaman modal tersebut tersedia di situs web Kementerian Investasi/BKPM. Data yang sudah aku siapkan dapat diakses di tautan ini. Dengan fungsi read_csv()
kita impor data tersebut dan kita namai dengan realisasi_penanaman_modal
. Untuk melihat datanya, kita dapat menggunakan fungsi print()
.
realisasi_penanaman_modal <- read_csv("https://raw.githubusercontent.com/jelajahstatid/jelajahstatid.github.io/main/pos/2024-08-dirgahayu-indonesia/aset/realisasi_penanaman_modal.csv")
print(realisasi_penanaman_modal)
# A tibble: 177 × 17
benua negara `2010` `2011` `2012` `2013` `2014` `2015` `2016` `2017` `2018`
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Afrika Afrika… NA NA NA NA NA NA NA NA 0
2 Afrika Afrika… NA 1190 NA NA 500 69.1 982. 4292. 5369.
3 Afrika Aljaza… NA NA NA NA NA 0 400 0 0
4 Afrika Benin NA NA NA NA NA NA NA NA NA
5 Afrika Burkin… NA NA NA NA 200 300 0 411. 0
6 Afrika Eswati… NA NA NA NA NA NA NA NA NA
7 Afrika Ethiop… NA NA NA NA NA NA NA NA 650
8 Afrika Gambia NA NA NA NA 0 NA NA NA NA
9 Afrika Ghana NA NA NA NA NA NA NA NA NA
10 Afrika Guinea NA NA NA NA 500 100 200 1500 0
# ℹ 167 more rows
# ℹ 6 more variables: `2019` <dbl>, `2020` <dbl>, `2021` <dbl>, `2022` <dbl>,
# `2023` <dbl>, `2024` <dbl>
Data tersebut memiliki 17 variabel dan 177 baris. Variabel-variabelnya adalah benua
, negara
, dan realisasi penanaman modal (dalam ribuan dolar AS) dari tahun 2010
sampai 2024
. Akan tetapi, nilai pada tahun 2024 tersebut belum utuh. Nilainya terhitung hanya sampai pada 30 Juni 2024.
Data kita tersebut bentuknya melebar. Kita buat data itu menjadi memanjang dengan menggunakan pivot_longer()
. Karena tahun 2024 nilainya belum utuh, kita perlu memfilternya agar mengabaikan data pada tahun itu. Hal ini dilakukan dengan fungsi filter()
dengan argumen tahun < 2024
. Namun, filter seperti itu mengharuskan nilai-nilai dalam variabel tahun
jenisnya adalah integer (atau numerik). Untuk itu, kita modifikasi variabel tahun
agar menjadi integer dengan fungsi mutate
dan as.integer()
. Kita lihat hasilnya dengan print()
.
realisasi_penanaman_modal <- realisasi_penanaman_modal |>
pivot_longer(
cols = starts_with("20"),
names_to = "tahun",
values_to = "nilai_investasi"
) |>
mutate(tahun = as.integer(tahun)) |>
filter(tahun < 2024)
print(realisasi_penanaman_modal)
# A tibble: 2,478 × 4
benua negara tahun nilai_investasi
<chr> <chr> <int> <dbl>
1 Afrika Afrika Lainnya 2010 NA
2 Afrika Afrika Lainnya 2011 NA
3 Afrika Afrika Lainnya 2012 NA
4 Afrika Afrika Lainnya 2013 NA
5 Afrika Afrika Lainnya 2014 NA
6 Afrika Afrika Lainnya 2015 NA
7 Afrika Afrika Lainnya 2016 NA
8 Afrika Afrika Lainnya 2017 NA
9 Afrika Afrika Lainnya 2018 0
10 Afrika Afrika Lainnya 2019 NA
# ℹ 2,468 more rows
Sekarang data kita, realisasi_penanaman_modal
, memiliki empat variabel dan 2.478 baris. Keempat variabel tersebut adalah benua
, negara
, tahun
, dan nilai_investasi
. Dari data tersebut, menarik untuk menyelidiki total investasi negara-negara berdasarkan benuanya.
Kita dapat melakukannya dengan mengelompokkan baris-baris dalam realisasi_penanaman_modal
berdasarkan benua
, kemudian meringkasnya untuk membuat variabel baru, yaitu total_investasi
. Variabel tersebut merupakan jumlah, atau sum()
, dari nilai-nilai dalam nilai_investasi
dalam setiap kelompoknya. Agar mudah membaca hasilnya, kita dapat mengurutkan baris-barisnya berdasarkan nilai dalam variabel total_investasi
dengan menggunakan arrange()
.
realisasi_penanaman_modal_benua <- realisasi_penanaman_modal |>
group_by(benua) |>
summarise(
total_investasi = sum(nilai_investasi, na.rm = TRUE),
.groups = "drop"
) |>
arrange(-total_investasi)
print(realisasi_penanaman_modal_benua)
# A tibble: 6 × 2
benua total_investasi
<chr> <dbl>
1 Asia 286233096.
2 Joint 41288935.
3 Amerika 40521759.
4 Eropa 39327051
5 Afrika 7185703.
6 Australia 6471650.
Negara-negara Asia memberikan investasi terbesar bagi Indonesia. Proporsinya adalah sekitar 68% dari keseluruhan.
Apabila ditotal, negara-negara dari Asia menanamkan modal terbesar dibandingkan dengan benua-benua lainnya (sekitar 68% dari keseluruhan).
Sekarang kita lihat tren realisasi penanaman modal setiap tahunnya. Kita dapat melakukannya dengan menggunakan kode yang serupa, tetapi pengelompokannya berdasarkan tahun
.
realisasi_penanaman_modal_tahun <- realisasi_penanaman_modal |>
group_by(tahun) |>
summarise(
total_investasi = sum(nilai_investasi, na.rm = TRUE),
.groups = "drop"
)
print(realisasi_penanaman_modal_tahun)
# A tibble: 14 × 2
tahun total_investasi
<int> <dbl>
1 2010 16214772.
2 2011 19474532.
3 2012 24564670.
4 2013 28616270.
5 2014 28529698.
6 2015 29275941.
7 2016 28964075.
8 2017 32239752.
9 2018 29307908.
10 2019 28208761.
11 2020 28666272.
12 2021 31093069
13 2022 45604963.
14 2023 50267512.
Secara umum, kita melihat adanya tren yang naik untuk nilai variabel total_investasi
. Berapakah kenaikan setiap tahunnya? Untuk menjawabnya, kita dapat menambahkan variabel baru ke dalam data tersebut dengan mutate()
. Misalnya, nama variabel tersebut adalah kenaikan_investasi
. Nilai variabel tersebut diperoleh dengan mengurangi nilai total_investasi
sebuah baris dengan nilai dalam baris sebelumnya. Untuk mendapatkan nilai pada baris sebelumnya, kita dapat menggunakan fungsi lag()
.
realisasi_penanaman_modal_tahun <- realisasi_penanaman_modal_tahun |>
mutate(
kenaikan_investasi = total_investasi - lag(total_investasi)
)
print(realisasi_penanaman_modal_tahun)
# A tibble: 14 × 3
tahun total_investasi kenaikan_investasi
<int> <dbl> <dbl>
1 2010 16214772. NA
2 2011 19474532. 3259759.
3 2012 24564670. 5090139.
4 2013 28616270. 4051600.
5 2014 28529698. -86571.
6 2015 29275941. 746242.
7 2016 28964075. -311866
8 2017 32239752. 3275677
9 2018 29307908. -2931844.
10 2019 28208761. -1099147
11 2020 28666272. 457512.
12 2021 31093069 2426797.
13 2022 45604963. 14511894.
14 2023 50267512. 4662549.
Berapakah rerata kenaikan realisasi penanaman modal setiap tahunnya? Kita dapat menghitungnya dengan menggunakan mean()
terhadap kolom kenaikan_investasi
dalam data realisasi_penanaman_modal_tahun
.
rerata_kenaikan_investasi <- mean(realisasi_penanaman_modal_tahun$kenaikan_investasi, na.rm = TRUE)
print(rerata_kenaikan_investasi)
[1] 2619442
Jadi, secara rata-rata kenaikan realisasi penanaman modal dari tahun 2010 sampai 2023 adalah sekitar 2.619.442 (ribuan dolar AS) atau sekitar 2,6 milyar dolar AS per tahunnya.
Terdapat tren yang naik untuk total realisasi penanaman modal asing dari berbagai negara. Mulai tahun 2010 sampai 2023, rerata kenaikannya sekitar 2,6 milyar dolar AS per tahunnya.
Tren realisasi penanaman modal tersebut ditunjukkan pada Gambar 2.
Kode
Berdasarkan Gambar 2 tersebut, kita dapat melihat bahwa kenaikan realisasi penanaman modal yang paling besar berada pada rentang tahun 2021 – 2023. Rerata kenaikan pada periode tersebut kurang lebih 9,6 milyar dolar AS per tahun.
Kenaikan penanaman modal asing terbesar terjadi di antara tahun 2021 dan 2023.
Memvisualisasikan Data
Saatnya kita wartakan temuan-temuan yang telah kita dapatkan. Berdasarkan Bagian 1, kita menemukan tiga hal.
- Apabila ditotal, negara-negara dari Asia menanamkan modal terbesar dibandingkan dengan benua-benua lainnya (sekitar 68% dari keseluruhan).
- Terdapat tren yang naik untuk total realisasi penanaman modal asing dari berbagai negara. Mulai tahun 2010 sampai 2023, rerata kenaikannya sekitar 2,6 milyar dolar AS per tahunnya.
- Kenaikan penanaman modal asing terbesar terjadi di antara tahun 2021 dan 2023.
Kita akan menyampaikan ketiga pesan tersebut melalui sebuah diagram. Diagram apa yang cocok? Mungkin diagram batang cocok—diagram batang yang menunjukkan realisasi penanaman modal setiap tahunnya beserta dengan proporsi setiap benuanya.
Untuk membuat diagram batang yang demikian, kita memerlukan data yang memiliki variabel benua
dan tahun
, serta nilai akumulasi dari realisasi penanaman modal untuk benua
dan tahun
yang bersangkutan.
Untuk membuat data seperti itu, kita menggunakan data realisasi_penanaman_modal
. Setelah itu, kita kelompokkan baris-baris dalam data tersebut menurut benua
dan tahun
untuk dihitung jumlah (sum()
) nilai-nilai variabel nilai_investasi
-nya. Kita namai data ini sebagai investasi_benua_tahun
.
investasi_benua_tahun <- realisasi_penanaman_modal |>
group_by(benua, tahun) |>
summarise(
total_investasi = sum(nilai_investasi, na.rm = TRUE),
.groups = "drop"
)
print(investasi_benua_tahun)
# A tibble: 84 × 3
benua tahun total_investasi
<chr> <int> <dbl>
1 Afrika 2010 149993.
2 Afrika 2011 202130.
3 Afrika 2012 1195699.
4 Afrika 2013 801737.
5 Afrika 2014 663936.
6 Afrika 2015 192825.
7 Afrika 2016 744869.
8 Afrika 2017 1288737.
9 Afrika 2018 373937.
10 Afrika 2019 326860.
# ℹ 74 more rows
Sekarang kita gunakan data investasi_benua_tahun
tersebut untuk membuat diagram batang. Diagram batang tersebut ditunjukkan pada Gambar 3.
Diagram batang pada Gambar 3 tersebut telah dapat menyampaikan tiga temuan kita. Akan tetapi, diagram tersebut mungkin terasa belum cukup meyakinkan. Diagram tersebut juga kurang sejalan dengan elemen grafis perayaan HUT ke-79 RI. Berdasarkan pedoman identitas visualnya, elemen grafis tersebut ditunjukkan pada Gambar 4.
Elemen grafis pada Gambar 4 tersebut melambangkan aliran sungai. Harapannya, negara akan terus berkembang mengikuti zaman seperti sifat sungai.
Berdasarkan harapan itu, kita dapat menggunakan diagram alir. Diagram seperti ini dapat kita buat dengan menggunakan fungsi geom_stream()
dari paket {ggstream}. Diagram alirnya dapat dilihat pada Gambar 5.
investasi_benua_tahun |>
ggplot(aes(x = tahun, y = total_investasi)) +
geom_stream(aes(fill = benua))
Agar terlihat lebih bersih, kita hilangkan latar belakang plotnya. Hal ini dapat kita lakukan dengan memilih tema theme_void()
. Warna yang merepresentasikan benua-benuanya juga dapat kita ganti. Untuk itu, kita perlu mengetahui apa saja benua-benua yang ada dalam data kita.
Ternyata ada lima benua (yaitu Afrika, Amerika, Asia, Australia, dan Eropa) serta satu kelompok dengan nama Joint. Kelompok Joint ini merupakan gabungan dari beberapa negara (tidak harus dalam satu benua).
Kita pilih warna untuk keenam kelompok tersebut. Agar warnanya sesuai dengan tema peringatan kemerdekaan Republik Indonesia, kita pilih warna-warnanya adalah #900C3F
, #C70039
, #FF5733
, #FF8D1A
, #FFC300
, dan grey85
. Kita petakan warna-warna ini ke nama kelompok-kelompoknya. Kita namai pemetaan tersebut dengan warna_benua
.
Sekarang kita modifikasi diagram pada Gambar 5. Hasilnya seperti tampak pada Gambar 6.
investasi_benua_tahun |>
ggplot(aes(x = tahun, y = total_investasi)) +
geom_stream(aes(fill = benua)) +
scale_y_continuous(limits = c(-6e+07, 6e+07)) +
scale_fill_manual(
values = warna_benua
) +
theme_void()
Kita perbaiki lagi diagram pada Gambar 6 tersebut. Apakah kamu punya ide perbaikannya seperti apa?
Pertama, kita hilangkan legendanya. Kedua, kita buat teks untuk sumbu-\(x\) secara manual. Agar teksnya nanti kelihatan rapi, kita juga perlu mengatur ulang batas-batas jendela grafiknya. Selain itu, kita perlu mengatur agar grafiknya lebih mepet ke kiri dan kanan. Hasil eksekusi ide ini ditunjukkan pada Gambar 7.
investasi_benua_tahun |>
ggplot(aes(x = tahun, y = total_investasi)) +
# Layer teks pada sumbu-x
geom_segment(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = 0, yend = -5e+07),
linewidth = .5,
linetype = "dashed",
alpha = .4
) +
geom_text(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = -5.5e+07, label = tahun),
size = 3
) +
# Layer diagram alir
geom_stream(aes(fill = benua)) +
# Pembatas jendela grafik
scale_y_continuous(limits = c(-6e+07, 6e+07)) +
# Pewarnaan manual
scale_fill_manual(
values = warna_benua
) +
# Pengaturan bidang koordinat
coord_cartesian(expand = FALSE) +
# Pemilihan tema
theme_void() +
# Pengaturan tema
theme(
legend.position = "none"
)
Apa selanjutnya? Agar diagram pada Gambar 7 tersebut jelas menyampaikan informasi apa, kita perlu menambahkan judul dan anak judul. Karena tadi kita telah menghapus legendanya, informasi legenda tersebut dapat kita masukkan ke dalam anak judul tersebut. Selain itu, kita juga dapat menambakan takarir ke dalam diagram tersebut. Takarir tersebut dapat menginformasikan sumber data yang kita gunakan. Untuk itu, kita siapkan judul, anak judul, dan takarirnya.
judul <- "Realisasi Penanaman Modal Asing"
anak_judul <- "Terdapat tren yang naik untuk total realisasi penanaman modal asing dari berbagai negara dari benua <span style='color:#900C3F'><b>Asia,</b></span> <span style='color:#FFC300'><b>Amerika,</b></span> <span style='color:#C70039'><b>Eropa,</b></span> <span style='color:#FF5733'><b>Afrika,</b></span> dan <span style='color:#FF8D1a'><b>Australia.</b></span> Mulai tahun 2010 sampai 2023, rerata kenaikannya sekitar 2,6 milyar dolar AS per tahunnya."
takarir <- "Data: Kementerian Investasi/BKPM"
Setelah judul
, anak_judul
, dan takarir
siap, kita dapat menambahkannya ke dalam diagram alirnya. Hasilnya ditunjukkan pada Gambar 8.
investasi_benua_tahun |>
ggplot(aes(x = tahun, y = total_investasi)) +
# Layer teks pada sumbu-x
geom_segment(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = 0, yend = -5e+07),
linewidth = .5,
linetype = "dashed",
alpha = .4
) +
geom_text(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = -5.5e+07, label = tahun),
size = 3
) +
# Layer diagram alir
geom_stream(aes(fill = benua)) +
# Pembatas jendela grafik
scale_y_continuous(limits = c(-6e+07, 6e+07)) +
# Pewarnaan manual
scale_fill_manual(
values = warna_benua
) +
# Pengaturan bidang koordinat
coord_cartesian(expand = FALSE) +
# Pemilihan tema
theme_void() +
# Pengaturan tema
theme(
legend.position = "none",
plot.title = element_textbox_simple(
size = 20,
face = "bold",
margin = margin(t = 10, r = 20, b = 5, l = 20)
),
plot.subtitle = element_textbox_simple(
margin = margin(t = 0, r = 20, b = 5, l = 20)
),
plot.caption = element_textbox_simple(
margin = margin(t = 5, r = 20, b = 10, l = 20)
)
) +
labs(
title = judul,
subtitle = anak_judul,
caption = takarir
)
Diagram alir yang ditunjukkan pada Gambar 8 sudah menawan. Akan tetapi, belum semua pesan yang kita temukan di Bagian 1 tersampaikan. Untuk itu, kita perlu menambahkan label pada diagram tersebut. Terlebih dahulu kita siapkan label-label tersebut.
pesan_1 <- "<b>Penanam modal terbesar</b><br>Apabila ditotal, negara-negara dari Asia menanamkan modal terbesar dibandingkan dengan benua-benua lainnya (sekitar 68% dari keseluruhan)."
pesan_2 <- "<b>Kenaikan terbesar</b><br>Kenaikan penanaman modal asing terbesar terjadi di antara tahun 2021 dan 2023."
Label-label sudah siap. Kita masukkan kedua label tersebut (yaitu pesan_1
dan pesan_2
) ke dalam diagram alirnya. Hasilnya disajikan pada Gambar 9.
investasi_benua_tahun |>
ggplot(aes(x = tahun, y = total_investasi)) +
# Layer teks pada sumbu-x
geom_segment(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = 0, yend = -5e+07),
linewidth = .5,
linetype = "dashed",
alpha = .4
) +
geom_text(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = -5.5e+07, label = tahun),
size = 3
) +
# Layer pesan 1
geom_segment(
x = 2015.05,
y = 5e+07,
yend = 0,
linewidth = 1
) +
geom_textbox(
x = 2015,
y = 5e+07,
label = pesan_1,
vjust = 0.95,
size = 3,
lineheight = 1,
hjust = 1,
halign = 1,
box.colour = "transparent",
fill = "transparent",
width = .38
) +
# Layer pesan 2
geom_segment(
x = 2022.55,
y = 5.5e+07,
yend = 0,
linewidth = 1
) +
geom_textbox(
x = 2022.5,
y = 5.5e+07,
label = pesan_2,
vjust = 0.95,
size = 3,
lineheight = 1,
hjust = 1,
halign = 1,
box.colour = "transparent",
fill = "transparent",
width = .3
) +
# Layer diagram alir
geom_stream(aes(fill = benua)) +
# Pembatas jendela grafik
scale_y_continuous(limits = c(-6e+07, 6e+07)) +
# Pewarnaan manual
scale_fill_manual(
values = warna_benua
) +
# Pengaturan bidang koordinat
coord_cartesian(expand = FALSE) +
# Pemilihan tema
theme_void() +
# Pengaturan tema
theme(
legend.position = "none",
plot.title = element_textbox_simple(
size = 20,
face = "bold",
margin = margin(t = 10, r = 20, b = 5, l = 20),
lineheight = 1
),
plot.subtitle = element_textbox_simple(
margin = margin(t = 0, r = 20, b = 5, l = 20),
lineheight = 1
),
plot.caption = element_textbox_simple(
margin = margin(t = 5, r = 20, b = 10, l = 20),
lineheight = 1
)
) +
labs(
title = judul,
subtitle = anak_judul,
caption = takarir
)
Diagram alir pada Gambar 9 tersebut telah menyampaikan temuan-temuan yang kita dapatkan pada Bagian 1. Diagram tersebut juga sudah tampak indah dan sejalan dengan harapan-harapan Indonesia tentang pertumbuhan ekonomi dan perkembangan bangsa Indonesia yang mengikuti zaman.
Visualisasi Lebih Lanjut
Kita masih dapat memodifikasi diagram alir pada Gambar 9. Paling tidak ada dua hal yang dapat kita lakukan:
- mengganti jenis dan warna fonnya, dan
- mengatur ukuran dan resolusi fail gambarnya.
Untuk melakukannya kita dapat menggunakan paket {showtext} dan {camcorder}. Paket {showtext} akan memudahkan kita untuk menggunakan berbagai macam jenis fon pada diagram kita nanti.
Fungsi paket {camcorder} sebenarnya untuk merekam sejarah diagram-diagram yang kita buat. Akan tetapi, di sini kita menggunakan paket tersebut untuk memastikan tampilan diagram pada fail gambar yang kita hasilkan nanti persis sama dengan diagram luaran R. Sebagai ilustrasi, jika kita menjalankan baris kode yang menghasilkan Gambar 9, kita akan mendapatkan tampilan seperti pada Gambar 10 (a). Akan tetapi, jika kita simpan diagram tersebut dengan ukuran 1280 px × 960 px, kita mendapatkan fail gambar yang tampilannya seperti pada Gambar 10 (b). Perbedaan yang mencolok dari kedua diagram tersebut adalah ukuran fonnya. Agar tampilan diagram kita konsisten, kita akan menggunakan fungsi-fungsi dari paket {camcorder}.
Jika kedua paket tersebut belum terinstal, silakan instal paket-paket tersebut dengan fungsi install.packages()
. Jika sudah terinstal, mari kita panggil kedua paket tersebut.
Misalnya kita akan membuat sebuah gambar png yang berukuran 1280 px × 960 px dan memiliki kedalaman gambar 72 dpi. Kita gunakan fungsi gg_record()
seperti pada baris kode di bawah. Argumen dir
diisi dengan nama folder tempat kita menyimpan gambar yang akan dihasilkan.
Selanjutnya kita akan mengganti jenis dan warna fonnya. Untuk jenis fon, kita pilih fon Lato. Fon ini tersedia secara gratis di Google Fonts. Fon Lato tersebut dapat diimpor dengan menggunakan fungsi font_add_google()
. Untuk menggunakan fungsi-fungsi {showtext} secara otomatis, kita perlu memanggil fungsi showtext_auto()
. Untuk warna teks, kita pilih #343A40
agar tidak terlalu kontras.
# Mengimpor fon dan menyalakan fungsi-fungsi {showtext}
font_add_google("Lato", "lato")
showtext_auto()
#' Membuat variabel `fon_judul` dan `fon_batang_tubuh`
#' untuk digunakan di tahap berikutnya
fon_judul <- "lato"
fon_batang_tubuh <- "lato"
# Menentukan `warna_teks`
warna_teks <- "#343A40"
Sekarang waktunya kita beraksi untuk melakukan visualisasi data. Kita modifikasi kode-kode yang digunakan untuk membuat diagram alir pada Gambar 9. Misalnya, hasil modifikasi tersebut adalah sebagai berikut.
investasi_benua_tahun |>
ggplot(aes(x = tahun, y = total_investasi)) +
# Layer teks pada sumbu-x
geom_segment(
data = data.frame(tahun = seq(2012, 2022, 2)),
aes(x = tahun, y = 0, yend = -5e+07),
linewidth = 1,
linetype = "dashed",
alpha = .4,
colour = warna_teks
) +
geom_text(
data = data.frame(tahun = seq(2012, 2022, 2)),
mapping = aes(x = tahun, y = -5.5e+07, label = tahun),
colour = warna_teks,
family = fon_batang_tubuh,
size = 6
) +
# Layer pesan 1
geom_segment(
x = 2015.1,
y = 4.5e+07,
yend = 0,
colour = warna_teks,
linewidth = 1.5
) +
geom_textbox(
x = 2015,
y = 4.5e+07,
label = pesan_1,
colour = warna_teks,
family = fon_batang_tubuh,
vjust = 0.95,
size = 6,
lineheight = 1.5,
hjust = 1,
halign = 1,
box.colour = "transparent",
fill = "transparent",
width = .35
) +
# Layer pesan 2
geom_segment(
x = 2022.6,
y = 5.5e+07,
yend = 0,
colour = warna_teks,
linewidth = 1.5
) +
geom_textbox(
x = 2022.5,
y = 5.5e+07,
label = pesan_2,
colour = warna_teks,
family = fon_batang_tubuh,
vjust = 0.95,
size = 6,
lineheight = 1.5,
hjust = 1,
halign = 1,
box.colour = "transparent",
fill = "transparent",
width = .3
) +
# Layer diagram alir
geom_stream(
aes(fill = benua)
) +
# Pembatas jendela grafik
scale_y_continuous(limits = c(-6e+07, 6e+07)) +
# Pewarnaan manual
scale_fill_manual(
values = warna_benua
) +
# Pengaturan bidang koordinat
coord_cartesian(expand = FALSE) +
# Pemilihan tema
theme_void(base_size = 24, base_family = fon_batang_tubuh) +
# Pengaturan tema
theme(
legend.position = "none",
plot.margin = margin(5, 5, 5, 0),
plot.background = element_rect(
fill = "white", colour = "white"
),
panel.background = element_rect(
fill = "white", colour = "white"
),
plot.title = element_textbox_simple(
colour = warna_teks,
hjust = 0,
halign = 0,
margin = margin(t = 30, r = 20, b = 5, l = 30),
lineheight = 1.5,
family = fon_judul,
face = "bold",
size = 40
),
plot.subtitle = element_textbox_simple(
colour = warna_teks,
hjust = 0,
halign = 0,
margin = margin(t = 5, r = 20, b = 15, l = 30),
lineheight = 1.5,
family = fon_batang_tubuh
),
plot.caption = element_textbox_simple(
colour = warna_teks,
hjust = 0,
halign = 0,
margin = margin(l = 30, b = 20, t = 10),
lineheight = 1.5,
family = fon_batang_tubuh
)
) +
# Pemberian judul, anak judul, dan takarir
labs(
title = judul,
subtitle = anak_judul,
caption = takarir
)
Setelah baris kode di atas dijalankan, kita akan mendapatkan diagram alir seperti yang ditunjukkan pada Gambar 11.
Fail gambar pada Gambar 11 tersebut dapat ditemukan dalam folder yang kita inputkan pada argumen dir
dalam fungsi gg_record()
di atas. Untuk mengakhiri perekaman, kita gunakan fungsi gg_stop_recording()
.
Catatan Akhir
Pada bulan Agustus, semua bangsa Indonesia memperingati kemerdekaan Republik Indonesia. Banyak cara yang dapat dilakukan. Salah satu cara yang kita lakukan adalah memberikan persembahan visualisasi data yang bertemakan pertumbuhan ekonomi nasional. Hal itu kita lakukan pada Bagian 2. Diagram alir pada Gambar 9 atau Gambar 11 tidak hanya menunjukkan tren pertumbuhan ekonomi Indonesia, tetapi juga sejalan dengan semangat perkembangan bangsa Indonesia yang mengikuti zaman.
Pada pos-pos berikutnya, kamu akan melihat bagaimana Statistika dan Ilmu Data digunakan dalam merayakan HUT ke-79 Republik Indonesia. Di pos-pos tersebut, kamu akan melihat bagaimana memvisualisasikan prestasi sepak bola Indonesia dibandingkan dengan negara-negara Asia Tenggara lainnya. Selain itu, kamu juga akan melihat bagaimana torehan atlet-atlet hebat Indonesia di pagelaran olimpiade melalui Statistika dan Ilmu Data. Dirgahayu Republik Indonesia!