Visualisasi Data Covid
Analisis Data COVID19 di Indonesia
Data yang digunakan adalah data Covid Jawa Barat, dapat di download pada link berikut ini: https://ipb.link/praktikum-visualisasidata
Data
cov_jabar <- read.csv("Datacov_Jabar.csv", sep=";")
head(cov_jabar)## tanggal KASUS MENINGGAL SEMBUH DIRAWAT_OR_ISOLASI AKUMULASI_KASUS
## 1 1.583194e+12 1 1 0 0 1
## 2 1.583280e+12 1 0 0 1 2
## 3 1.583366e+12 1 0 0 1 3
## 4 1.583453e+12 1 0 0 1 4
## 5 1.583539e+12 0 0 0 0 4
## 6 1.583626e+12 0 0 0 0 4
## AKUMULASI_SEMBUH AKUMULASI_MENINGGAL AKUMULASI_DIRAWAT_OR_ISOLASI
## 1 0 1 0
## 2 0 1 1
## 3 0 1 2
## 4 0 1 3
## 5 0 1 3
## 6 0 1 3
library(dplyr)## Warning: package 'dplyr' was built under R version 4.0.4
##
## 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
new_cov_jabar <-
cov_jabar %>%
select(-contains("DIRAWAT_OR_ISOLASI")) %>%
select(-starts_with("AKUMULASI")) %>%
rename(
kasus_baru = KASUS,
meninggal = MENINGGAL,
sembuh = SEMBUH
) %>%
mutate(
tanggal = as.POSIXct(tanggal / 1000, origin = "1970-01-01"),
tanggal = as.Date(tanggal)
)
head(new_cov_jabar)## tanggal kasus_baru meninggal sembuh
## 1 2020-03-03 1 1 0
## 2 2020-03-04 1 0 0
## 3 2020-03-05 1 0 0
## 4 2020-03-06 1 0 0
## 5 2020-03-07 0 0 0
## 6 2020-03-08 0 0 0
Grafik Kasus Harin Positif Covid
Menggunakan plot biasa tanpa warna dan nama
library(ggplot2)## Warning: package 'ggplot2' was built under R version 4.0.4
library(hrbrthemes)## Warning: package 'hrbrthemes' was built under R version 4.0.5
ggplot(new_cov_jabar, aes(x = tanggal, y = kasus_baru)) +
geom_col()Merubah warna dan memberi nama plot
library(ggplot2)
library(hrbrthemes)
p1 <- ggplot(new_cov_jabar, aes(tanggal, kasus_baru)) +
geom_col(fill = "salmon") +
labs(
x = NULL,
y = "Jumlah kasus",
title = "Kasus Harian Positif COVID-19 di Jawa Barat",
subtitle = "Terjadi pelonjakan kasus di awal bulan Juli akibat klaster Secapa AD Bandung",
caption = "Sumber data: covid.19.go.id"
) +
theme_ipsum(
base_size = 13,
plot_title_size = 21,
grid = "Y",
ticks = TRUE
) +
theme(plot.title.position = "plot")
p1Grafik untuk Kasus Sembuh
library(ggplot2)
library(hrbrthemes)
p2 <- ggplot(new_cov_jabar, aes(tanggal, sembuh)) +
geom_col(fill = "olivedrab2") +
labs(
x = NULL,
y = "Jumlah kasus",
title = "Kasus Harian Sembuh Dari COVID-19 di Jawa Barat",
caption = "Sumber data: covid.19.go.id"
) +
theme_ipsum(
base_size = 13,
plot_title_size = 21,
grid = "Y",
ticks = TRUE
) +
theme(plot.title.position = "plot")
p2 Grafik untuk Kasus Meninggal
library(ggplot2)
library(hrbrthemes)
p3 <- ggplot(new_cov_jabar, aes(tanggal, meninggal)) +
geom_col(fill = "darkslategray4") +
labs(
x = NULL,
y = "Jumlah kasus",
title = "Kasus Harian Meninggal Akibat COVID-19 di Jawa Barat",
caption = "Sumber data: covid.19.go.id"
) +
theme_ipsum(
base_size = 13,
plot_title_size = 21,
grid = "Y",
ticks = TRUE
) +
theme(plot.title.position = "plot")
p3Grafik Akumulasi Kasus Aktif
library(dplyr)
library(lubridate)## Warning: package 'lubridate' was built under R version 4.0.4
##
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
##
## date, intersect, setdiff, union
cov_jabar_pekanan <- new_cov_jabar %>%
count(
tahun = year(tanggal),
pekan_ke = week(tanggal),
wt = kasus_baru,
name = "jumlah"
)
head(cov_jabar_pekanan)## tahun pekan_ke jumlah
## 1 2020 9 1
## 2 2020 10 3
## 3 2020 11 16
## 4 2020 12 41
## 5 2020 13 98
## 6 2020 14 149
library(dplyr)
library(tidyr)## Warning: package 'tidyr' was built under R version 4.0.4
cov_jabar_pekanan <-
cov_jabar_pekanan %>%
mutate(
jumlah_pekanlalu = dplyr::lag(jumlah, 1),
jumlah_pekanlalu = ifelse(is.na(jumlah_pekanlalu), 0, jumlah_pekanlalu),
lebih_baik = jumlah < jumlah_pekanlalu
)
head(cov_jabar_pekanan)## tahun pekan_ke jumlah jumlah_pekanlalu lebih_baik
## 1 2020 9 1 0 FALSE
## 2 2020 10 3 1 FALSE
## 3 2020 11 16 3 FALSE
## 4 2020 12 41 16 FALSE
## 5 2020 13 98 41 FALSE
## 6 2020 14 149 98 FALSE
Jumlah Kasus Aktif
cov_jabar_akumulasi <-
new_cov_jabar %>%
transmute(
tanggal,
akumulasi_aktif = cumsum(kasus_baru) - cumsum(sembuh) - cumsum(meninggal),
akumulasi_sembuh = cumsum(sembuh),
akumulasi_meninggal = cumsum(meninggal)
)
head(cov_jabar_akumulasi)## tanggal akumulasi_aktif akumulasi_sembuh akumulasi_meninggal
## 1 2020-03-03 0 0 1
## 2 2020-03-04 1 0 1
## 3 2020-03-05 2 0 1
## 4 2020-03-06 3 0 1
## 5 2020-03-07 3 0 1
## 6 2020-03-08 3 0 1
Transformasi Data
cov_jabar_akumulasi_pivot <-
cov_jabar_akumulasi %>%
gather(
key = "kategori",
value = "jumlah",
-tanggal
) %>%
mutate(
kategori = sub(pattern = "akumulasi_", replacement = "", kategori)
)
head(cov_jabar_akumulasi_pivot)## tanggal kategori jumlah
## 1 2020-03-03 aktif 0
## 2 2020-03-04 aktif 1
## 3 2020-03-05 aktif 2
## 4 2020-03-06 aktif 3
## 5 2020-03-07 aktif 3
## 6 2020-03-08 aktif 3
Grafik Akumulasi Kasus Aktif
library(ggplot2)
library(hrbrthemes)
p4 <- ggplot(cov_jabar_akumulasi_pivot, aes(tanggal, jumlah, colour = (kategori))) +
geom_line(size = 0.9) +
scale_y_continuous(sec.axis = dup_axis(name = NULL)) +
scale_colour_manual(
values = c(
"aktif" = "salmon",
"meninggal" = "darkslategray4",
"sembuh" = "olivedrab2"
),
labels = c("Aktif", "Meninggal", "Sembuh")
) +
labs(
x = NULL,
y = "Jumlah kasus akumulasi",
colour = NULL,
title = "Dinamika Kasus COVID-19 di Jawa Barat",
caption = "Sumber data: covid.19.go.id"
) +
theme_ipsum(
base_size = 13,
plot_title_size = 21,
grid = "Y",
ticks = TRUE
) +
theme(
plot.title = element_text(hjust = 0.5),
legend.position = "top"
)
p4Arrange the plots
#Move to a new page
library(grid)
library(gridExtra)## Warning: package 'gridExtra' was built under R version 4.0.5
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
grid.newpage()
# Create layout : nrow = 2, ncol = 2
pushViewport(viewport(layout = grid.layout(2, 2)))
# A helper function to define a region on the layout
define_region <- function(row, col){
viewport(layout.pos.row = row, layout.pos.col = col)
}
print(p1, vp = define_region(1, 1))
print(p2, vp = define_region(2, 1))
print(p3, vp = define_region(1, 2))
print(p4, vp = define_region(2, 2))source
https://rpubs.com/willibrordus_bayu/covid_indonesia
p1 <- qplot(mpg, wt, data=mtcars)
p2 <- p1
p3 <- p1 + theme(axis.text.y=element_blank(), axis.title.y=element_blank())
grid.arrange(arrangeGrob(p1,p2, ncol=1, nrow=2),
arrangeGrob(p3, ncol=1, nrow=1), heights=c(4,1), widths=c(2,1))