library(dplyr)

Data1 <- read.csv(file.choose(), header=TRUE) 
Data2 <- read.csv(file.choose(), header=TRUE) 
Data3 <- read.csv(file.choose(), header=TRUE) 
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(forcats)
#Visualisasi Besaran = Lollipop Chart (Tingkat Pendidikan Tertinggi Masyarakat Jawa Barat)
 Data1 %>%
  count(Pendidikan) %>%
  arrange(desc(n)) %>%
  slice_max(n, n = 10) %>%
  ggplot() +
  geom_segment(aes(x = fct_reorder(as.factor(Pendidikan), n), xend = fct_reorder(as.factor(Pendidikan), n), y = 0, yend = n), color = "blue") +
  geom_point(aes(x = fct_reorder(as.factor(Pendidikan), n), y = n), color = "orange", size = 2) +
  geom_text(aes(x = fct_reorder(as.factor(Pendidikan), n), y = n, label = n), vjust = -0.5, color = "black") +
  scale_y_continuous(expand = c(0, 5000)) +
  coord_flip() +
  ggtitle("Tingkat Pendidikan tertinggi Masyarakat Jawa Barat 2023") +
  xlab("") +
  ylab("Jumlah") +
  theme_light() +
  theme(plot.title = element_text(hjust = 0.5))

jenis_pendidikan <- c("SD", "SMP", "SMA", "SMK", "S1")
top_5_data <- Data2 %>%
  filter(Jenis.Pendidikan %in% jenis_pendidikan)

ggplot(top_5_data, aes(x = as.factor(Penerima.KIP), y = Responden, fill = as.factor(Jenis.Pendidikan))) +
  geom_bar(stat = "identity") +
  labs(fill = "Tahun") +
  ggtitle("Penerima KIP dan Tidak Berdasarkan Pendidikan di Jawa Barat 2023") +
  xlab("") +
  ylab("Total") +
  scale_fill_brewer(palette = "Set2") +
  theme_minimal()

#DensityPlot
ggplot(Data3)+
  geom_density(aes(x=Pedesaan,fill= "Pedesaan" ),color="black", alpha=0.4)+
  geom_density(aes(x=Pekotaan,fill="Pekotaan"), color="black", alpha=0.4)+
  labs(title="Density Plot Pengeluaran Konsumsi Rumah Tangga 2023")+
  xlab("Pengeluaran Konsumsi")+
  ylab("Jumlah")+
  xlim(0,5000000)
## Warning: Removed 1885 rows containing non-finite values (`stat_density()`).
## Warning: Removed 3570 rows containing non-finite values (`stat_density()`).

#ViolinPlot
ggplot(Data3, aes(x = "", y = Pekotaan)) +
  geom_violin(fill = "skyblue") +
  labs(title = "Violin Plot: Distribusi Pengeluaran Konsumsi Masyarakat Pekotaan",
       x = NULL,
       y = "Pengeluaran Konsumsi") +
  theme_minimal()

#PieChart ()
Data1 %>%
  count(Pendidikan)%>%
  top_n(5, n)%>%
  mutate(Percentage = n / sum(n) * 100) %>%
  ggplot(aes(x = "", y = Percentage, fill = Pendidikan)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y") +
  geom_text(aes(label = sprintf("%.1f%%", Percentage)), position = position_stack(vjust = 0.5), color = "white") +
  scale_fill_brewer(palette = "Set2") +
  ggtitle("Tingkat Pendidikan tertinggi Masyarakat Jawa Barat 2023") +
  theme_void() +
  theme(plot.title = element_text(hjust = 0.5))

Data2 %>%
  count(Jenis.Pendidikan) %>%
  top_n(5, n) %>%
  mutate(ymax = cumsum(n), ymin = lag(ymax, default = 0)) %>%
  ggplot(aes(ymax = ymax, ymin = ymin, xmax = 15000000, xmin = 10000000, fill = Jenis.Pendidikan)) +
  geom_rect() +
  coord_polar(theta = "y") +
  xlim(c(0, 15000000)) +
  theme_classic()