Report R Markdown ini dubuat untuk tujuan pembelajaran self learning materi Interactive Plotting dengan menggunakan Software R. Pada LBB ini saya menggunakan data Bencana Alam yang saya ambil dari website https://gis.bnpb.go.id/ dalam bentuk file excel. Data tersebut saya tarik dari rentang waktu 1 januari 2023 hingga 28 Mei 2023. Pada LBB ini bertujuan untuk memonitoring kejadian Bencana Alam di Indonesia sehingga untuk memudahkan monitoring diperlukan sistem Dashboard, yang dalam LBB ini mengaplikasikan dengan menggunakan Shiny Dashboard.
library(readxl)
## Warning: package 'readxl' was built under R version 4.2.3
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(ggplot2)
library(plotly)
## Warning: package 'plotly' was built under R version 4.2.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(glue)
#read data
disaster <- read_excel("Data Input/Data Bencana.xlsx")
head(disaster)
## # A tibble: 6 × 16
## No. Kode_Identi…¹ ID_Ka…² Tanggal_Kejadian Kejad…³ Lokasi Kabup…⁴ Provi…⁵
## <dbl> <chr> <dbl> <dttm> <chr> <chr> <chr> <chr>
## 1 1 3319 102 202… 3319 2023-05-28 00:00:00 TANAH … Kec. … KUDUS JAWA T…
## 2 2 6301 107 202… 6301 2023-05-28 00:00:00 KEBAKA… Kec. … TANAH … KALIMA…
## 3 3 1804 105 202… 1804 2023-05-28 00:00:00 PUTING… Kec. … LAMPUN… LAMPUNG
## 4 4 6504 107 202… 6504 2023-05-28 00:00:00 KEBAKA… Kec. … NUNUKAN KALIMA…
## 5 5 1172 107 202… 1172 2023-05-28 00:00:00 KEBAKA… Kec. … KOTA S… ACEH
## 6 6 1606 107 202… 1606 2023-05-28 00:00:00 KEBAKA… Kec. … MUSI B… SUMATE…
## # … with 8 more variables: `Kronologi & Dokumentasi` <chr>, Penyebab <chr>,
## # Meninggal <dbl>, Hilang <dbl>, Terluka <dbl>, Rumah_Rusak <dbl>,
## # Rumah_Terendam <dbl>, Fasum_Rusak <dbl>, and abbreviated variable names
## # ¹Kode_Identitas_Bencana, ²ID_Kabupaten, ³Kejadian, ⁴Kabupaten, ⁵Provinsi
# Cek struktur data
disaster %>%
glimpse()
## Rows: 1,146
## Columns: 16
## $ No. <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1…
## $ Kode_Identitas_Bencana <chr> "3319 102 2023 05 028 1", "6301 107 2023 05 …
## $ ID_Kabupaten <dbl> 3319, 6301, 1804, 6504, 1172, 1606, 1612, 62…
## $ Tanggal_Kejadian <dttm> 2023-05-28, 2023-05-28, 2023-05-28, 2023-05…
## $ Kejadian <chr> "TANAH LONGSOR", "KEBAKARAN HUTAN DAN LAHAN"…
## $ Lokasi <chr> "Kec. Dawe Ds. Dukuh Waringin", "Kec. Bati-…
## $ Kabupaten <chr> "KUDUS", "TANAH LAUT", "LAMPUNG TIMUR", "NUN…
## $ Provinsi <chr> "JAWA TENGAH", "KALIMANTAN SELATAN", "LAMPUN…
## $ `Kronologi & Dokumentasi` <chr> "Dokumentasi", "Dokumentasi", "Dokumentasi",…
## $ Penyebab <chr> "Sejumlah 8 pekerja melakukan aktifitas pemb…
## $ Meninggal <dbl> 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ Hilang <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
## $ Terluka <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
## $ Rumah_Rusak <dbl> 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
## $ Rumah_Terendam <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, …
## $ Fasum_Rusak <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
# Mengetahui kolom-kolom apa saja yang ada di data
colnames(disaster)
## [1] "No." "Kode_Identitas_Bencana"
## [3] "ID_Kabupaten" "Tanggal_Kejadian"
## [5] "Kejadian" "Lokasi"
## [7] "Kabupaten" "Provinsi"
## [9] "Kronologi & Dokumentasi" "Penyebab"
## [11] "Meninggal" "Hilang"
## [13] "Terluka" "Rumah_Rusak"
## [15] "Rumah_Terendam" "Fasum_Rusak"
seleksi kolom mana yang akan dipake dalam tahapan selanjutnya
Kolom yang tidak dipakai No, Kode Identitas Bencana, Kronologi & Dokumentasi,
kolom yang dipakai: ID Kabupaten, Tanggal Kejadian, Kejadian, Lokasi, Kejadian, Lokasi, Kabupaten, Provinsi, Penyebab, Meninggal, Hilang, Terluka, Rumah Rusak, Rumah Terendam, Fasum Rusak
# Hilangkan kolom yang tidak dipakai
disaster <- disaster %>%
select(-c("No.", "Kode_Identitas_Bencana", "Kronologi & Dokumentasi"))
head(disaster)
## # A tibble: 6 × 13
## ID_Kabupa…¹ Tanggal_Kejadian Kejad…² Lokasi Kabup…³ Provi…⁴ Penye…⁵ Menin…⁶
## <dbl> <dttm> <chr> <chr> <chr> <chr> <chr> <dbl>
## 1 3319 2023-05-28 00:00:00 TANAH … Kec. … KUDUS JAWA T… Sejuml… 3
## 2 6301 2023-05-28 00:00:00 KEBAKA… Kec. … TANAH … KALIMA… Masih … NA
## 3 1804 2023-05-28 00:00:00 PUTING… Kec. … LAMPUN… LAMPUNG Dipicu… NA
## 4 6504 2023-05-28 00:00:00 KEBAKA… Kec. … NUNUKAN KALIMA… Masih … NA
## 5 1172 2023-05-28 00:00:00 KEBAKA… Kec. … KOTA S… ACEH Masih … NA
## 6 1606 2023-05-28 00:00:00 KEBAKA… Kec. … MUSI B… SUMATE… ●masih… NA
## # … with 5 more variables: Hilang <dbl>, Terluka <dbl>, Rumah_Rusak <dbl>,
## # Rumah_Terendam <dbl>, Fasum_Rusak <dbl>, and abbreviated variable names
## # ¹ID_Kabupaten, ²Kejadian, ³Kabupaten, ⁴Provinsi, ⁵Penyebab, ⁶Meninggal
Mengubah tipe data Tipe data yang belum sesuai diantaranya adalah:
ID Kabupaten : factor Tanggal Kejadian: YMD <- Lubridate kejadian : factor Kabupaten : factor Provinsi : factor Meninggal, Hilang, Terluka, Rumah Rusak, Rumah Terendam, Fasum Rusak : integer
disaster <- disaster %>%
mutate(ID_Kabupaten = as.factor(ID_Kabupaten),
Kejadian = as.factor(Kejadian),
Kabupaten = as.factor(Kabupaten),
Provinsi = as.factor(Provinsi),
Meninggal = as.integer(Meninggal),
Hilang = as.integer(Hilang),
Terluka = as.integer(Terluka),
Rumah_Rusak = as.integer(Rumah_Rusak),
Rumah_Terendam = as.integer(Rumah_Terendam),
Fasum_Rusak = as.integer(Fasum_Rusak))
glimpse(disaster)
## Rows: 1,146
## Columns: 13
## $ ID_Kabupaten <fct> 3319, 6301, 1804, 6504, 1172, 1606, 1612, 6271, 6271,…
## $ Tanggal_Kejadian <dttm> 2023-05-28, 2023-05-28, 2023-05-28, 2023-05-28, 2023…
## $ Kejadian <fct> TANAH LONGSOR, KEBAKARAN HUTAN DAN LAHAN, PUTING BELI…
## $ Lokasi <chr> "Kec. Dawe Ds. Dukuh Waringin", "Kec. Bati-Bati Ds. …
## $ Kabupaten <fct> KUDUS, TANAH LAUT, LAMPUNG TIMUR, NUNUKAN, KOTA SABAN…
## $ Provinsi <fct> JAWA TENGAH, KALIMANTAN SELATAN, LAMPUNG, KALIMANTAN …
## $ Penyebab <chr> "Sejumlah 8 pekerja melakukan aktifitas pembenahan ta…
## $ Meninggal <int> 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ Hilang <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ Terluka <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ Rumah_Rusak <int> 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, …
## $ Rumah_Terendam <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2…
## $ Fasum_Rusak <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
sekarang, mari kita sesuaikan tipe data tanggal kejadian dengan menggunakan lubridate
library(lubridate)
## Warning: package 'lubridate' was built under R version 4.2.3
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
disaster$Tanggal_Kejadian <- ymd(disaster$Tanggal_Kejadian)
class(disaster$Tanggal_Kejadian)
## [1] "Date"
head(disaster)
## # A tibble: 6 × 13
## ID_Kabupaten Tanggal_K…¹ Kejad…² Lokasi Kabup…³ Provi…⁴ Penye…⁵ Menin…⁶ Hilang
## <fct> <date> <fct> <chr> <fct> <fct> <chr> <int> <int>
## 1 3319 2023-05-28 TANAH … Kec. … KUDUS JAWA T… Sejuml… 3 NA
## 2 6301 2023-05-28 KEBAKA… Kec. … TANAH … KALIMA… Masih … NA NA
## 3 1804 2023-05-28 PUTING… Kec. … LAMPUN… LAMPUNG Dipicu… NA NA
## 4 6504 2023-05-28 KEBAKA… Kec. … NUNUKAN KALIMA… Masih … NA NA
## 5 1172 2023-05-28 KEBAKA… Kec. … KOTA S… ACEH Masih … NA NA
## 6 1606 2023-05-28 KEBAKA… Kec. … MUSI B… SUMATE… ●masih… NA NA
## # … with 4 more variables: Terluka <int>, Rumah_Rusak <int>,
## # Rumah_Terendam <int>, Fasum_Rusak <int>, and abbreviated variable names
## # ¹Tanggal_Kejadian, ²Kejadian, ³Kabupaten, ⁴Provinsi, ⁵Penyebab, ⁶Meninggal
glimpse(disaster)
## Rows: 1,146
## Columns: 13
## $ ID_Kabupaten <fct> 3319, 6301, 1804, 6504, 1172, 1606, 1612, 6271, 6271,…
## $ Tanggal_Kejadian <date> 2023-05-28, 2023-05-28, 2023-05-28, 2023-05-28, 2023…
## $ Kejadian <fct> TANAH LONGSOR, KEBAKARAN HUTAN DAN LAHAN, PUTING BELI…
## $ Lokasi <chr> "Kec. Dawe Ds. Dukuh Waringin", "Kec. Bati-Bati Ds. …
## $ Kabupaten <fct> KUDUS, TANAH LAUT, LAMPUNG TIMUR, NUNUKAN, KOTA SABAN…
## $ Provinsi <fct> JAWA TENGAH, KALIMANTAN SELATAN, LAMPUNG, KALIMANTAN …
## $ Penyebab <chr> "Sejumlah 8 pekerja melakukan aktifitas pembenahan ta…
## $ Meninggal <int> 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ Hilang <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ Terluka <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ Rumah_Rusak <int> 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, …
## $ Rumah_Terendam <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 2…
## $ Fasum_Rusak <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
disaster %>%
is.na() %>%
colSums()
## ID_Kabupaten Tanggal_Kejadian Kejadian Lokasi
## 0 0 0 11
## Kabupaten Provinsi Penyebab Meninggal
## 0 0 16 1094
## Hilang Terluka Rumah_Rusak Rumah_Terendam
## 1141 1092 0 717
## Fasum_Rusak
## 0
Karena pada data ditemukan banyak NA pada bagian meninggal, Hilang, Terluka, Rumah_Rusak, Rumah_Terendam artinya bahwa tidak ada seingga diganti dengan 0
disaster <- disaster %>%
mutate(Meninggal = coalesce(Meninggal,0)) %>%
mutate(Hilang = coalesce(Hilang,0)) %>%
mutate(Terluka = coalesce(Terluka,0)) %>%
mutate(Rumah_Rusak = coalesce(Rumah_Rusak,0)) %>%
mutate(Rumah_Terendam = coalesce(Rumah_Terendam,0))
disaster %>%
is.na() %>%
colSums()
## ID_Kabupaten Tanggal_Kejadian Kejadian Lokasi
## 0 0 0 11
## Kabupaten Provinsi Penyebab Meninggal
## 0 0 16 0
## Hilang Terluka Rumah_Rusak Rumah_Terendam
## 0 0 0 0
## Fasum_Rusak
## 0
Kolom kosong NA sudah terisi dengan 0 karena memang tidak ada jumlah yang meninggal/terluka tinggal kolom Lokasi dan Penyebab yang tidak diketahui sehingga kita drop baris nya yang kosong menggunakan na.omit
disaster_clean <- disaster %>%
na.omit(Lokasi, Penyebab)
Data sudah bersih tidak ada missing value / NA
Jumlah Orang Meninggal, Jumlah Orang Terluka, Jumlah Rumah Rusak, Jumlah Rumah Terendam, dan Jumlah Fasilitas Umum Rusak di seluruh provinsi Indonesia berdasarkan Bulan dan berdasarkan Kejadian. sehingga User bisa memilih ingin melihat di bulan apa dan jenis kejadian bencana apa dengan mudah.
Melihat trend jumlah kejadian bencana di seluruh provinsi setap hari nya berdasarkan inputan bulan dan jenis kejadian bencana yang dipilih.
Melihat top 10 provinsi dengan kejadian bencana tertinggi yang dipilih menurut bulan dan kejadian nya.
disaster_clean %>%
is.na() %>%
colSums()
## ID_Kabupaten Tanggal_Kejadian Kejadian Lokasi
## 0 0 0 0
## Kabupaten Provinsi Penyebab Meninggal
## 0 0 0 0
## Hilang Terluka Rumah_Rusak Rumah_Terendam
## 0 0 0 0
## Fasum_Rusak
## 0
mendapatkan data jumlah kejadian
dis <- disaster_clean %>%
mutate(Bulan = month(Tanggal_Kejadian, label = TRUE, abbr = FALSE)) %>%
mutate(Tanggal = day(Tanggal_Kejadian))
dis
## # A tibble: 1,119 × 15
## ID_Kabupaten Tanggal_…¹ Kejad…² Lokasi Kabup…³ Provi…⁴ Penye…⁵ Menin…⁶ Hilang
## <fct> <date> <fct> <chr> <fct> <fct> <chr> <dbl> <dbl>
## 1 3319 2023-05-28 TANAH … Kec. … KUDUS JAWA T… Sejuml… 3 0
## 2 6301 2023-05-28 KEBAKA… Kec. … TANAH … KALIMA… Masih … 0 0
## 3 1804 2023-05-28 PUTING… Kec. … LAMPUN… LAMPUNG Dipicu… 0 0
## 4 6504 2023-05-28 KEBAKA… Kec. … NUNUKAN KALIMA… Masih … 0 0
## 5 1172 2023-05-28 KEBAKA… Kec. … KOTA S… ACEH Masih … 0 0
## 6 1606 2023-05-28 KEBAKA… Kec. … MUSI B… SUMATE… ●masih… 0 0
## 7 1612 2023-05-28 KEBAKA… Kec. … PENUKA… SUMATE… Masih … 0 0
## 8 6271 2023-05-28 KEBAKA… Kec. … KOTA P… KALIMA… Masih … 0 0
## 9 6271 2023-05-27 KEBAKA… Kec. … KOTA P… KALIMA… ●Masih… 0 0
## 10 1302 2023-05-27 KEBAKA… Kec. … PESISI… SUMATE… ●masih… 0 0
## # … with 1,109 more rows, 6 more variables: Terluka <dbl>, Rumah_Rusak <dbl>,
## # Rumah_Terendam <dbl>, Fasum_Rusak <int>, Bulan <ord>, Tanggal <int>, and
## # abbreviated variable names ¹Tanggal_Kejadian, ²Kejadian, ³Kabupaten,
## # ⁴Provinsi, ⁵Penyebab, ⁶Meninggal
plot_agg_1 <- dis %>%
group_by(Kejadian) %>%
summarise(Jumlah_Kejadian = n()) %>%
arrange(desc(Jumlah_Kejadian))
plot_agg_1
## # A tibble: 8 × 2
## Kejadian Jumlah_Kejadian
## <fct> <int>
## 1 BANJIR 468
## 2 PUTING BELIUNG 330
## 3 TANAH LONGSOR 213
## 4 KEBAKARAN HUTAN DAN LAHAN 82
## 5 GELOMBANG PASANG / ABRASI 12
## 6 GEMPA BUMI 11
## 7 LETUSAN GUNUNG API 2
## 8 KEKERINGAN 1
plot_agg_1 <- plot_agg_1 %>%
mutate(label=glue("Kejadian : {Kejadian}
Jumlah Kejadian : {Jumlah_Kejadian} Kali"))
# Plot Rangking Statis
plot_ranking <- plot_agg_1 %>%
ggplot(mapping=aes(x = reorder(Kejadian,Jumlah_Kejadian),
y = Jumlah_Kejadian,
text = label)) +
geom_col(aes(fill = Kejadian)) +
labs(title = "Jumlah Kejadian Bencana Bulan Menurut Jenis Bencana",
x = NULL,
y = "Kali") +
theme(plot.title = element_text(face = "bold", size = 14, hjust = 0.04),
axis.ticks.y = element_blank(),
panel.background = element_rect(fill = "#ffffff"),
panel.grid.major.x = element_line(colour = "grey"),
axis.line.x = element_line(color = "grey"),
axis.text.x = element_blank())
# Plot Rangking Interaktif
ggplotly(plot_ranking, tooltip = "text")
Menghilangkan Levels pada bulan
levels(dis$Bulan)
## [1] "January" "February" "March" "April" "May" "June"
## [7] "July" "August" "September" "October" "November" "December"
dis$Bulan <- droplevels(dis$Bulan)
Yang ikut seharusnya Januari hingga Mei
levels(dis$Bulan)
## [1] "January" "February" "March" "April" "May"
plot_agg_2 <- dis %>%
group_by(Tanggal, Kejadian) %>%
summarise(Jumlah_Kejadian =n())
## `summarise()` has grouped output by 'Tanggal'. You can override using the
## `.groups` argument.
plot_agg_2
## # A tibble: 137 × 3
## # Groups: Tanggal [31]
## Tanggal Kejadian Jumlah_Kejadian
## <int> <fct> <int>
## 1 1 BANJIR 17
## 2 1 GELOMBANG PASANG / ABRASI 2
## 3 1 GEMPA BUMI 1
## 4 1 KEBAKARAN HUTAN DAN LAHAN 7
## 5 1 PUTING BELIUNG 19
## 6 1 TANAH LONGSOR 7
## 7 2 BANJIR 30
## 8 2 KEBAKARAN HUTAN DAN LAHAN 2
## 9 2 PUTING BELIUNG 13
## 10 2 TANAH LONGSOR 12
## # … with 127 more rows
plot_agg_2 <- plot_agg_2 %>%
mutate(label=glue("Tanggal : {Tanggal}
Jenis Kejadian : {Kejadian}
Jumlah Kejadian : {Jumlah_Kejadian} Kali"))
plot_trend <- plot_agg_2 %>%
ggplot(mapping = aes(x= Tanggal, y= Jumlah_Kejadian, text = label )) +
geom_col(aes(color = Kejadian)) +
labs(title = "Jumlah Kejadian Bencana Bulan",
x = NULL,
y = "Kali") +
scale_x_continuous(breaks = seq(1,31,1)) +
theme_classic()
# # Plot Rangking Interaktif
ggplotly(plot_trend, tooltip = "text")
#
plot2 <- plot_agg_2 %>%
ggplot(mapping = aes( x= Tanggal,
y = Jumlah_Kejadian)) +
geom_area(aes(color = Kejadian), fill = "#355C7D", linetype = "dashed") +
geom_point(aes(color = Kejadian,
text = glue("Tanggal : {Tanggal}
Jenis Kejadian : {Kejadian}
Jumlah Kejadian : {Jumlah_Kejadian} Kali"))) +
scale_x_continuous(breaks = seq(1,31,1)) +
labs(title = "Trend Jumlah Kejadian Bencana",
subtitle = "Bulan",
x = "Tanggal",
y = "Jumlah Kejadian",
color = "Jenis Bencana") +
theme(plot.title = element_text(face = "bold", size = 14, hjust = 0.04),
axis.ticks.y = element_blank(),
panel.background = element_rect(fill = "#ffffff"),
panel.grid.major.x = element_line(colour = "grey"),
axis.line.x = element_line(color = "grey"),
axis.text = element_text(size = 10, colour = "black"))
## Warning in geom_point(aes(color = Kejadian, text = glue("Tanggal : {Tanggal}\n
## Jenis Kejadian : {Kejadian}\n Jumlah Kejadian : {Jumlah_Kejadian} Kali"))):
## Ignoring unknown aesthetics: text
ggplotly(plot2, tooltip = "text")
# Mengetahui Jumlah Meninggal di Setiap Bulan dan Kejadian
mng <- dis %>%
group_by(Bulan, Kejadian) %>%
summarise(Jumlah_Meninggal = sum(Meninggal))
## `summarise()` has grouped output by 'Bulan'. You can override using the
## `.groups` argument.
mng
## # A tibble: 30 × 3
## # Groups: Bulan [5]
## Bulan Kejadian Jumlah_Meninggal
## <ord> <fct> <dbl>
## 1 January BANJIR 11
## 2 January GELOMBANG PASANG / ABRASI 0
## 3 January GEMPA BUMI 0
## 4 January KEBAKARAN HUTAN DAN LAHAN 0
## 5 January PUTING BELIUNG 0
## 6 January TANAH LONGSOR 4
## 7 February BANJIR 6
## 8 February GELOMBANG PASANG / ABRASI 0
## 9 February GEMPA BUMI 4
## 10 February KEBAKARAN HUTAN DAN LAHAN 0
## # … with 20 more rows
sum(mng$Jumlah_Meninggal)
## [1] 145
plot_agg_3 <- dis %>%
group_by(Provinsi, Kejadian) %>%
summarise(Jumlah_Kejadian = n()) %>%
arrange(desc(Jumlah_Kejadian)) %>%
ungroup() %>%
top_n(10)
## `summarise()` has grouped output by 'Provinsi'. You can override using the
## `.groups` argument.
## Selecting by Jumlah_Kejadian
plot_agg_3
## # A tibble: 11 × 3
## Provinsi Kejadian Jumlah_Kejadian
## <fct> <fct> <int>
## 1 JAWA BARAT TANAH LONGSOR 103
## 2 JAWA BARAT PUTING BELIUNG 97
## 3 JAWA BARAT BANJIR 52
## 4 JAWA TENGAH PUTING BELIUNG 50
## 5 JAWA TENGAH BANJIR 46
## 6 JAWA TENGAH TANAH LONGSOR 43
## 7 JAWA TIMUR BANJIR 43
## 8 NUSA TENGGARA BARAT BANJIR 34
## 9 JAWA TIMUR PUTING BELIUNG 31
## 10 ACEH BANJIR 27
## 11 SULAWESI TENGAH BANJIR 27
plot_agg_3 %>%
ggplot(mapping = aes(x= Jumlah_Kejadian , y= reorder(Provinsi, Jumlah_Kejadian))) +
geom_col(aes(fill = Kejadian))
levels(dis$Provinsi)
## [1] "ACEH" "BALI"
## [3] "BANTEN" "BENGKULU"
## [5] "DI YOGYAKARTA" "DKI JAKARTA"
## [7] "GORONTALO" "JAMBI"
## [9] "JAWA BARAT" "JAWA TENGAH"
## [11] "JAWA TIMUR" "KALIMANTAN BARAT"
## [13] "KALIMANTAN SELATAN" "KALIMANTAN TENGAH"
## [15] "KALIMANTAN TIMUR" "KALIMANTAN UTARA"
## [17] "KEPULAUAN BANGKA BELITUNG" "KEPULAUAN RIAU"
## [19] "LAMPUNG" "MALUKU"
## [21] "MALUKU UTARA" "NUSA TENGGARA BARAT"
## [23] "NUSA TENGGARA TIMUR" "PAPUA"
## [25] "PAPUA BARAT" "RIAU"
## [27] "SULAWESI BARAT" "SULAWESI SELATAN"
## [29] "SULAWESI TENGAH" "SULAWESI TENGGARA"
## [31] "SULAWESI UTARA" "SUMATERA BARAT"
## [33] "SUMATERA SELATAN" "SUMATERA UTARA"
plot_agg_3.1 <- dis %>%
group_by(Bulan, Kejadian) %>%
summarise(Jumlah_Kejadian = n())
## `summarise()` has grouped output by 'Bulan'. You can override using the
## `.groups` argument.
plot_agg_3.1 <- plot_agg_3.1 %>%
mutate(label= glue("Bulan : {Bulan}
Jenis Bencana : {Kejadian}
Jumlah Kejadian : {Jumlah_Kejadian}"))
plot3 <- plot_agg_3.1 %>%
ggplot(mapping = aes(x = Bulan, y = Jumlah_Kejadian, text = label)) +
geom_col()
plot3
kejadianperbulan <- as.data.frame(table(dis$Kejadian))
names(kejadianperbulan) <- c("Kejadian", "Freq")
head(kejadianperbulan)
## Kejadian Freq
## 1 BANJIR 468
## 2 GELOMBANG PASANG / ABRASI 12
## 3 GEMPA BUMI 11
## 4 KEBAKARAN HUTAN DAN LAHAN 82
## 5 KEKERINGAN 1
## 6 LETUSAN GUNUNG API 2