malaria <- read.csv("C:/#2 SEMESTER 4 IPB UNIVERSITY/#MATA KULIAH/VISUALISASI DATA/PRAK/data.jabarprov.go.id/malaria.csv",)
str(malaria)
## 'data.frame': 189 obs. of 8 variables:
## $ id : int 1 2 3 4 5 6 7 8 9 10 ...
## $ kode_provinsi : int 32 32 32 32 32 32 32 32 32 32 ...
## $ nama_provinsi : chr "JAWA BARAT" "JAWA BARAT" "JAWA BARAT" "JAWA BARAT" ...
## $ kode_kabupaten_kota: int 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 ...
## $ nama_kabupaten_kota: chr "KABUPATEN BOGOR" "KABUPATEN SUKABUMI" "KABUPATEN CIANJUR" "KABUPATEN BANDUNG" ...
## $ jumlah_kasus : int 0 66 0 1 5 59 0 0 11 0 ...
## $ satuan : chr "ORANG" "ORANG" "ORANG" "ORANG" ...
## $ tahun : int 2016 2016 2016 2016 2016 2016 2016 2016 2016 2016 ...
#melakukan subset data
Tahun_2016 <- subset(malaria,tahun==2016)
Tahun_2017 <- subset(malaria,tahun==2017)
Tahun_2018 <- subset(malaria,tahun==2018)
Tahun_2019 <- subset(malaria,tahun==2019)
Tahun_2020 <- subset(malaria,tahun==2020)
Tahun_2021 <- subset(malaria,tahun==2021)
Tahun_2022 <- subset(malaria,tahun==2022)
#Rata-rata jumlah kasus malaria pertahun di provinsi Jawa Barat
rata_list <- lapply(list(Tahun_2016, Tahun_2017, Tahun_2018, Tahun_2019, Tahun_2020, Tahun_2021, Tahun_2022), function(data) {
rata <- mean(data$jumlah_kasus)
return(rata)
})
names(rata_list) <-(2016:2022)
rata_list
## $`2016`
## [1] 9.259259
##
## $`2017`
## [1] 4.666667
##
## $`2018`
## [1] 8
##
## $`2019`
## [1] 8.62963
##
## $`2020`
## [1] 12.18519
##
## $`2021`
## [1] 6.703704
##
## $`2022`
## [1] 18.44444
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
#membuat data frame
malaria2 <-data.frame(
Tahun = c(2016, 2017, 2018, 2019, 2020, 2021, 2022),
Rata_rata = c(9.25, 4.67, 8, 8.62, 12.18, 6.7, 18.44)
)
# Membuat grafik line chart
grafik <- ggplot(data = malaria2, aes(x = Tahun, y = Rata_rata)) +
geom_line(color="red",size=2) +
geom_point(color="blue",size=3)+
geom_text(aes(label = Rata_rata), vjust = -0.5, color = "black", size = 3,nudge_y =0.5 )+
labs(x = "Tahun", y = "Rata-rata") +
ggtitle("Rata-rata Malaria per Tahun")+theme_minimal()+
theme(panel.grid.major = element_line(colour = "gray", linetype = "dashed"),
panel.grid.minor = element_blank(),
plot.title = element_text(hjust = 0.5),) +
scale_color_manual(values = c("red", "blue"), name = "Data Type") +
scale_x_continuous(breaks = malaria2$Tahun)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Menampilkan grafik
print(grafik)
Berdasarkan grafik diatas terlihat rata-rata penyakit malaria dari tahun ke tahun mengalami peningkatan yang cukup signikan. Peningkatan rata-rata penyakit malaria paling tinggi yaitu tahun 2021 (6,7) ke tahun 2022 (18,44)
library(ggplot2)
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
kasus <- malaria %>% mutate(Ranking=rank(jumlah_kasus))
top10_kasus <-kasus %>%
top_n(10, wt=jumlah_kasus) %>%
arrange(desc(jumlah_kasus))
top10_kasus1 <- top10_kasus[,c(5:6,8:9)]
top10_kasus1
## nama_kabupaten_kota jumlah_kasus tahun Ranking
## 1 KOTA DEPOK 209 2022 189.0
## 2 KOTA DEPOK 187 2020 188.0
## 3 KABUPATEN SUKABUMI 66 2016 187.0
## 4 KABUPATEN TASIKMALAYA 59 2016 186.0
## 5 KABUPATEN SUKABUMI 43 2019 183.5
## 6 KOTA CIMAHI 43 2020 183.5
## 7 KOTA CIMAHI 43 2021 183.5
## 8 KOTA CIMAHI 43 2022 183.5
## 9 KOTA BANDUNG 41 2022 181.0
## 10 KOTA BOGOR 39 2022 180.0
colors <- c("red","yellow","blue","orange","navy")
ggplot(top10_kasus1, aes(x = nama_kabupaten_kota, y = jumlah_kasus, fill = as.factor(tahun))) +
geom_bar(stat = "identity", position = "dodge")+
labs(title = "Top 10 Kabupaten/Kota dengan Jumlah Kasus Malaria Tertinggi Tahun 2016-2022",
x = "Kabupaten/Kota",
y = "Jumlah Kasus",
fill = "Tahun") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 0, hjust = 3))+
coord_flip()+
theme(plot.title = element_text(size = 11,hjust = 1),legend.position = "bottom", panel.background = element_rect(fill = "lightblue"))+
scale_fill_manual(values = colors)
library(dplyr)
top10_list <- lapply(list(Tahun_2018, Tahun_2019, Tahun_2020, Tahun_2021, Tahun_2022), function(data) {
data %>%
arrange(desc(jumlah_kasus)) %>%
head(10)
})
top10lah <- do.call(rbind, top10_list)
Top10 <-top10lah[,c(5:6,8)]
Top10
## nama_kabupaten_kota jumlah_kasus tahun
## 1 KABUPATEN SUKABUMI 36 2018
## 2 KABUPATEN TASIKMALAYA 27 2018
## 3 KOTA BANDUNG 23 2018
## 4 KOTA CIMAHI 22 2018
## 5 KOTA BEKASI 19 2018
## 6 KABUPATEN CIREBON 18 2018
## 7 KOTA BOGOR 14 2018
## 8 KABUPATEN BANDUNG 9 2018
## 9 KABUPATEN CIAMIS 8 2018
## 10 KABUPATEN SUMEDANG 8 2018
## 11 KABUPATEN SUKABUMI 43 2019
## 12 KABUPATEN INDRAMAYU 36 2019
## 13 KOTA BOGOR 31 2019
## 14 KABUPATEN PANGANDARAN 25 2019
## 15 KOTA BANDUNG 24 2019
## 16 KABUPATEN TASIKMALAYA 20 2019
## 17 KOTA CIMAHI 11 2019
## 18 KABUPATEN BOGOR 9 2019
## 19 KABUPATEN GARUT 5 2019
## 20 KABUPATEN CIREBON 5 2019
## 21 KOTA DEPOK 187 2020
## 22 KOTA CIMAHI 43 2020
## 23 KABUPATEN INDRAMAYU 19 2020
## 24 KOTA BOGOR 18 2020
## 25 KABUPATEN SUKABUMI 11 2020
## 26 KOTA BANDUNG 8 2020
## 27 KABUPATEN TASIKMALAYA 7 2020
## 28 KOTA BEKASI 7 2020
## 29 KABUPATEN BOGOR 6 2020
## 30 KABUPATEN PANGANDARAN 4 2020
## 31 KOTA CIMAHI 43 2021
## 32 KABUPATEN INDRAMAYU 19 2021
## 33 KOTA DEPOK 19 2021
## 34 KOTA BOGOR 18 2021
## 35 KABUPATEN TASIKMALAYA 15 2021
## 36 KABUPATEN BANDUNG 12 2021
## 37 KOTA TASIKMALAYA 10 2021
## 38 KOTA BANDUNG 8 2021
## 39 KABUPATEN SUKABUMI 7 2021
## 40 KABUPATEN BOGOR 5 2021
## 41 KOTA DEPOK 209 2022
## 42 KOTA CIMAHI 43 2022
## 43 KOTA BANDUNG 41 2022
## 44 KOTA BOGOR 39 2022
## 45 KABUPATEN TASIKMALAYA 29 2022
## 46 KABUPATEN SUKABUMI 28 2022
## 47 KOTA BEKASI 25 2022
## 48 KABUPATEN BOGOR 11 2022
## 49 KABUPATEN INDRAMAYU 10 2022
## 50 KABUPATEN GARUT 9 2022
library(ggplot2)
ggplot(Top10, aes(x = tahun, y = jumlah_kasus, fill = factor(tahun))) +
geom_boxplot() +
scale_fill_manual(values = c("#999999", "#E69F00","red","orange","green"), name = "Tahun")+
labs(x = "Tahun", y = "Jumlah Kasus", title = "Top 10 kabupaten/kota dengan Jumlah Kasus Malaria Tertinggi berdasarkan Tahun",color = "Statistik") +
theme_minimal()+
theme(plot.title = element_text(size = 11,hjust = 1),legend.position = "bottom", panel.background = element_rect(fill = "lightblue"))+
stat_summary(fun = "mean", geom = "point", shape = 18, size = 3, color = "blue", position = position_nudge(0.2)) + # Menambahkan titik rata-rata
stat_summary(fun = "median", geom = "point", shape = 8, size = 3, color = "black", position = position_nudge(-0.2)) + # Menambahkan titik median
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.2, color = "blue") + # Menambahkan error bar untuk rata-rata
stat_summary(fun.data = "median_hilow", geom = "errorbar", width = 0.2, color = "black")+# Menambahkan error bar untuk median
guides(color = guide_legend(title = "Statistik", override.aes = list(shape = c(18, 8), size = c(3, 3), color = c("blue", "black"))))
d <- rbind(subset(Top10, tahun==2020),
subset(Top10, tahun==2021),
subset(Top10, tahun==2022))
ggplot(d)+
geom_density(aes(x=jumlah_kasus,fill = factor(tahun), color= factor(tahun)),alpha = 0.5, size = 1.2)+
labs(title = "Sebaran Kasus Malaria Tertinggi Tahun 2020-2022",
x="Jumlah Kasus",
y="Frekuensi")+theme_minimal()+scale_fill_manual(values = c("red", "orange", "navy"))+scale_color_manual(values = c("black", "orange", "navy"))+theme(panel.grid.major = element_line(color = "lightblue"))
library(treemap)
## Warning: package 'treemap' was built under R version 4.3.2
# Pastikan 'jumlah_kasus' adalah numerik
malaria$jumlah_kasus <- as.numeric(malaria$jumlah_kasus)
# Hitung jumlah kasus Malaria untuk setiap kabupaten/kota
aggregated_data <- aggregate(jumlah_kasus ~ nama_kabupaten_kota, data = malaria, FUN = sum)
# Hitung total jumlah kasus Malaria di semua kabupaten/kota
total_cases <- sum(aggregated_data$jumlah_kasus)
# Hitung proporsi relatif setiap kabupaten/kotanya
aggregated_data$proporsi <- aggregated_data$jumlah_kasus / total_cases * 100
tm <- treemap(aggregated_data,
index = "nama_kabupaten_kota",
vSize = "proporsi",
vColor = "proporsi",
title = " Proporsi Kasus Malaria di Jawa Barat Tahun 2016-2022",
fontsize.labels = c(12),
fontsize.title = 11,
palette = "Reds"
)
# 3 kota dengan proporsi paling tinggi
top_3_proporsi <- head(aggregated_data[order(aggregated_data$proporsi, decreasing = TRUE), ], 3)
top_3_proporsi
## nama_kabupaten_kota jumlah_kasus proporsi
## 25 KOTA DEPOK 440 24.00436
## 16 KABUPATEN SUKABUMI 195 10.63830
## 18 KABUPATEN TASIKMALAYA 190 10.36552
# Pastikan 'jumlah_kasus' adalah dalam bentuk numerik
malaria$jumlah_kasus <- as.numeric(malaria$jumlah_kasus)
# Hitung jumlah kasus Malaria untuk setiap tahun
aggregated_data <- aggregate(jumlah_kasus ~ tahun, data = malaria, FUN = sum)
# Hitung total jumlah kasus Malaria di seluruh dataset
total_cases <- sum(aggregated_data$jumlah_kasus)
# Hitung proporsi relatif kasus Malaria untuk setiap tahun
aggregated_data$proporsi <- aggregated_data$jumlah_kasus / total_cases * 100
# tahun dengan proporsi tertinggi
top_7_proporsi <- head(aggregated_data[order(aggregated_data$proporsi, decreasing = TRUE), ], 7)
top_7_proporsi
## tahun jumlah_kasus proporsi
## 7 2022 498 27.168576
## 5 2020 329 17.948718
## 1 2016 250 13.638843
## 4 2019 233 12.711402
## 3 2018 216 11.783961
## 6 2021 181 9.874523
## 2 2017 126 6.873977
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.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
data <- top_7_proporsi
# Plot diagram donat 3D
plot_ly(data, labels = ~tahun, values = ~proporsi, type = 'pie', hole = 0.6) %>%
layout(title = "Proporsi Kasus Malaria per Tahun",
scene = list(aspectmode = "cube",
xaxis = list(title = ""),
yaxis = list(title = ""),
zaxis = list(title = "")))