Pie chart adalah lingkaran yang dibagi menjadi beberapa sektor yang masing-masing mewakili proporsi keseluruhan.
Data yang digunakan diperoleh dari https://www.kaggle.com/datasets/arnabchaki/data-science-salaries-2023
library(readxl)
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
data <- read_excel("D:/CHISTAT LEARNING/R SERIES/DATASET/ds_salaries.xlsx", col_names=TRUE)
data## # A tibble: 3,755 × 11
## work_year experience_level employment_type job_title salary salary_currency
## <dbl> <chr> <chr> <chr> <dbl> <chr>
## 1 2023 SE FT Principal … 80000 EUR
## 2 2023 MI CT ML Engineer 30000 USD
## 3 2023 MI CT ML Engineer 25500 USD
## 4 2023 SE FT Data Scien… 175000 USD
## 5 2023 SE FT Data Scien… 120000 USD
## 6 2023 SE FT Applied Sc… 222200 USD
## 7 2023 SE FT Applied Sc… 136000 USD
## 8 2023 SE FT Data Scien… 219000 USD
## 9 2023 SE FT Data Scien… 141000 USD
## 10 2023 SE FT Data Scien… 147100 USD
## # ℹ 3,745 more rows
## # ℹ 5 more variables: salary_in_usd <dbl>, employee_residence <chr>,
## # remote_ratio <dbl>, company_location <chr>, company_size <chr>
Membuat Basic pie chart
ggplot(data = data, aes(x = "", fill = experience_level)) +
geom_bar(width = 1) +
coord_polar(theta = "y") +
labs(title = "Distribusi Experience Level",
fill = "Experience Level") +
theme_void()Menambahkan Label Pada Pie Chart
# Menghitung jumlah pengamatan untuk setiap kategori experience_level
experience_counts <- table(data$experience_level)
# Menghitung persentase setiap kategori experience_level
experience_percent <- round((experience_counts / sum(experience_counts)) * 100, 1)
# Membuat dataframe agregat
aggregated_data <- data.frame(
experience_level = names(experience_counts),
experience_count = as.numeric(experience_counts),
experience_percent
)
# Membuat pie chart dengan persentase nilai
colors <- c("#58BECA", "#FE74BB", "#5BCEAC", "#EADA62")
ggplot(data = aggregated_data, aes(x = "", y = experience_percent, fill = experience_level)) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
labs(title = "Persentase Data Scientist Berdasarkan Tingkat Pengalaman Kerja",
fill = "Tingkat Pengalaman Kerja") +
theme_void() +
geom_text(aes(label = paste0(experience_percent, "%")),
position = position_stack(vjust = 0.5),
size=3.5)+
theme(plot.title = element_text(size = 10, hjust = 0.5, face="bold", color="black"),
legend.text = element_text(size = 10), legend.position = "left")+
scale_fill_manual(values=colors)## Don't know how to automatically pick scale for object of type <table>.
## Defaulting to continuous.