library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.6.1
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.6.1
##
## 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(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.6.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ lubridate 1.9.5 ✔ tibble 3.3.1
## ✔ purrr 1.2.2 ✔ tidyr 1.3.2
## ✔ readr 2.2.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data <- read.csv("Jumlah PTN dan PTS di 38 Provinsi Indonesia.csv", header=T)
data
## Provinsi PTN PTS Total
## 1 Aceh 7 70 77
## 2 Sumatera_Utara 3 188 191
## 3 Sumatera_Barat 5 80 85
## 4 Riau 2 63 65
## 5 Jambi 1 33 34
## 6 Sumatera_Selatan 2 78 80
## 7 Bengkulu 2 14 16
## 8 Lampung 3 56 59
## 9 Kepulauan_Bangka_Belitung 2 10 12
## 10 Kepulauan_Riau 2 26 28
## 11 DKI_Jakarta 4 237 241
## 12 Jawa_Barat 12 348 360
## 13 Jawa_Tengah 9 228 237
## 14 DI_Yogyakarta 5 101 106
## 15 Jawa_Timur 17 318 335
## 16 Banten 2 94 96
## 17 Bali 4 51 55
## 18 Nusa_Tenggara_Barat 1 56 57
## 19 Nusa_Tenggara_Timur 4 57 61
## 20 Kalimantan_Barat 4 41 45
## 21 Kalimantan_Tengah 1 25 26
## 22 Kalimantan_Selatan 3 47 50
## 23 Kalimantan_Timur 6 43 49
## 24 Kalimantan_Utara 2 7 9
## 25 Sulawesi_Utara 4 43 47
## 26 Sulawesi_Tengah 1 32 33
## 27 Sulawesi_Selatan 6 168 174
## 28 Sulawesi_Tenggara 2 47 49
## 29 Gorontalo 1 12 13
## 30 Sulawesi_Barat 1 17 18
## 31 Maluku 3 26 29
## 32 Maluku_Utara 1 20 21
## 33 Papua_Barat 2 10 12
## 34 Papua_Barat_Daya 0 12 12
## 35 Papua 2 27 29
## 36 Papua_Selatan 1 7 8
## 37 Papua_Tengah 0 13 13
## 38 Papua_Pegunungan 0 8 8
ggplot(data, aes(x="", y=Total))+
geom_boxplot(fill="seagreen", color="maroon")+
labs(title="Distribusi Jumlah Perguruan Tinggi di Indonesia",
x="", y="Jumlah Perguruan Tinggi")+
theme_minimal()+
theme(plot.title=element_text(hjust=0.5, face="bold"))
ggplot(data, aes(x=Provinsi, y=Total, fill=Total))+
geom_col()+
scale_fill_gradient(low="skyblue", high="purple4")+
labs(title="Jumlah Perguruan Tinggi Menurut Provinsi",
x="Provinsi",
y="Jumlah Perguruan Tinggi")+
theme_minimal()+
theme(axis.text.x=element_text(angle=45, hjust=1),
plot.title=element_text(hjust=0.5, face="bold"),
legend.position="none")
Data_Kalimantan <- data %>%
filter(str_starts(Provinsi, "Kalimantan")) %>%
pivot_longer(cols = c(PTN, PTS),
names_to = "Status",
values_to = "Jumlah")
Data_Kalimantan
## # A tibble: 10 × 4
## Provinsi Total Status Jumlah
## <chr> <int> <chr> <int>
## 1 Kalimantan_Barat 45 PTN 4
## 2 Kalimantan_Barat 45 PTS 41
## 3 Kalimantan_Tengah 26 PTN 1
## 4 Kalimantan_Tengah 26 PTS 25
## 5 Kalimantan_Selatan 50 PTN 3
## 6 Kalimantan_Selatan 50 PTS 47
## 7 Kalimantan_Timur 49 PTN 6
## 8 Kalimantan_Timur 49 PTS 43
## 9 Kalimantan_Utara 9 PTN 2
## 10 Kalimantan_Utara 9 PTS 7
ggplot(Data_Kalimantan, aes(x = Provinsi, y = Jumlah, fill = Status)) +
geom_col() +
geom_text(aes(label = Jumlah),
position = position_stack(vjust = 0.5),
color = "white", fontface = "bold") +
scale_fill_manual(values = c("PTN" = "steelblue",
"PTS" = "mediumpurple")) +
labs(title = "Jumlah Perguruan Tinggi Pulau Kalimantan Tahun 2025",
x = "Provinsi",
y = "Jumlah Perguruan Tinggi",
fill = "Status") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5, face = "bold"))