0.0.1 Link :
- Git Hub : https://github.com/Zen-Rofiqy/STA1381-PSD/tree/main/Proj
- Manage & Cleaning Data: https://rpubs.com/ZenR_Prog/PSD-Proj-Managing
- Visualisasi dan Eksplorasi Data : https://rpubs.com/ZenR_Prog/PSD-Proj-Visdat
- Analisis Data : Managing : https://rpubs.com/ZenR_Prog/PSD-Proj-Andat
#Export chart
export.chart <- "C:/Users/Fathan/Documents/Obsidian Vault/2. Kuliah/Smt 5/8. Pengantar Sains Data/Proj/Chart"
0.0.2 Data Input
install_load('readxl','dplyr','kableExtra','DT')
raw.data <- read_xlsx("managed.xlsx", sheet="Data")
data <- raw.data
datatable(raw.data, filter = 'top',
options = list(pageLength = 5))
1 Brand Laptop
1.1 Bar Chart Vertikal
# Membuat bar chart persentase
gg.data <- data %>% count(Brand) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100))
chart <-
ggplot(data = gg.data, #buat persentase
aes(x = reorder(Brand, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill= ifelse(gg.data$Brand == "HP", "#1380A1", "#dddddd")) +
labs(x = "\nBrand", y = "Persentase (%)",
title = "Sebaran Brand Laptop",
subtitle = "Laptop apa yang paling banyak di laptopmedia.com?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1)) + theme1.1
chart
#Export Chart
ggsave("01.1_Sebaran Brand Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
1.2 Bar Chart Horizontal
chart <-
ggplot(data = gg.data, #buat persentase
aes(x = reorder(Brand, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill= ifelse(gg.data$Brand == "HP", "#1380A1", "#dddddd")) +
labs(x = "\nBrand", y = "Persentase (%)",
title = "Sebaran Brand Laptop",
subtitle = "Laptop apa yang paling banyak di laptopmedia.com?\n") + coord_flip() +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 5)) + theme1.2
chart
#Export Chart
ggsave("01.2_Sebaran Brand Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 17)
2 Harga
2.1 Sebaran
2.1.1 Variasi
2.1.1.1 Sebaran Harga
install_load('ggtext')
chart <-
ggplot(data, aes(x=`Price (IDR)`/1000,
y='')) +
#Violin
geom_violin(scale="count", fill='#fdbe4a', color='black', alpha=0.9,
trim = FALSE) +
#Boxplot
geom_boxplot(fill='#0B6260', color='black',
outlier.size=2, outlier.color='#0B6260',
notch=T, width=0.2) +
#Mean Marker
stat_summary(fun = mean, geom = "point", shape = 16, size = 4,
color = "cyan2") +
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nHarga (Ribu IDR)", y='',
title = "Sebaran Harga Brand Laptop",
subtitle = "Berapa sih harga mayoritas laptop di laptopmedia.com?\n") + theme2 +
#Tambah Mean Value
geom_richtext(
data = data.frame(x = mean(data$`Price (IDR)`) / 1000, y = 1.25,
label = paste("Mean:",
round(mean(data$`Price (IDR)`) / 1000,
2))),
aes(x, y, label = label), size = 7, color = "#0B6260",
fill = "white", box.color = "#0B6260", parse = TRUE
) +
#Tambah panah
geom_segment(aes(x = mean(data$`Price (IDR)`) / 1000,
xend = mean(data$`Price (IDR)`) / 1000,
y = 1,
yend = 1.225),
arrow = arrow(type = "closed", length = unit(0.1, "inches")),
lineend = "round", color = "cyan2")
chart
#Export Chart
ggsave("02.1_Sebaran Harga Laptop.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
2.1.1.2 Sebaran Harga Per Laptop Brand
install_load('ggridges','viridis')
data$Brand <- factor(data$Brand,
levels= data %>% count(Brand) %>%
arrange(n, desc(Brand)) %>%
pull(Brand) )
chart <-
ggplot(data, aes(x=`Price (IDR)`/1000, y=Brand, fill=Brand)) +
geom_density_ridges() +
#COLORING
scale_fill_viridis(alpha = 0.75, #Opacity
begin = 0.5, #Color pallte scale begins
end = 0.9, #Color pallte scale ends
direction = -1, #Flip color scale
discrete = T, #Discrete Value
option = "B") + #Color Palette
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nHarga (Ribu IDR)",y = "Brand Laptop\n",
title = "Sebaran Harga Brand Laptop",
subtitle = "Tiap brand laptop di laptopmedia.com rentang harganya berapa ya?\n") +
theme2 +
annotate(
geom = "richtext",
x = -Inf, y = 1.25,
label = "<b>Tidak ada sebaran</b> pada merek laptop <b>Toshiba</b>, <b>Chuwi</b>, dan <b>Fusion5</b>\n\n karena jumlah data untuk ketiga merek tersebut sangat terbatas, yaitu <b>kurang dari 3</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.1, size = 7, fill=NA
)
chart
#Export Chart
ggsave("02.2_Sebaran Harga Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
3 Storage
3.1 Pie Chart, Proporsi HDD dan SSD
install_load('stringr','ggrepel')
data <- data %>%
mutate(`Storage (GB)` = as.numeric(str_extract(Storage, "\\d+")),
`Storage Type` = str_extract(Storage, "(SSD|HDD)"))
gg.data <- data %>%
group_by(`Storage Type`) %>%
summarize(count = n()) %>%
arrange(desc(count))
# Buat pie chart
chart <-
ggplot(gg.data, aes(x = "", y = count, fill = `Storage Type`)) +
geom_bar(stat = "identity", col=NA) +
geom_label_repel(aes(label = paste0(`Storage Type`, "\n",
round(count / sum(count) * 100),
"% (", count, ")" ) ),
position = position_stack(vjust = 0.5), size = 10,
label.padding = unit(1, "lines"), col="white") +
coord_polar(theta = "y") +
scale_fill_manual(values =c(SSD = "#3788A1", HDD = "#504E58")) +
theme_void() +
labs(title = "\nProporsi Tipe Storage",
subtitle = "Berapa sih perbandingan banyaknya SSD dan HDD laptop?\n") + theme3
chart
#Export Chart
ggsave("03.1_Proporsi SSD dan HDD.png", chart, path = export.chart,
dpi = 300, height = 14, width = 14)
3.2 Bar Chart SSD
3.2.1 Variasi
3.2.1.1 Tidak Urut
# Membuat bar chart persentase
gg.data <- data %>%
filter(grepl("SSD", `Storage Type`, ignore.case = TRUE)) %>%
count(`Storage (GB)`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top3 = row_number() <= 3) # Top 3 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Storage (GB)`, `Storage (GB)`), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top3, c("#3788A1", "#5494A3", "#65AEB9"),
"#dddddd")
) +
labs(x = "SSD (GB)", y = "Persentase (%)\n",
title = "Sebaran SSD Laptop",
subtitle = "Mayoritas kapasitas penyimpanan SSD-nya berapa ya?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("03.2_Sebaran SSD Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
3.2.1.2 Urut
# Membuat bar chart persentase
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Storage (GB)`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top3, c("#3788A1", "#5494A3", "#65AEB9"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "SSD (GB)", y = "Persentase (%)\n",
title = "Sebaran SSD Laptop",
subtitle = "Mayoritas kapasitas penyimpanan SSD-nya berapa ya?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("03.3_Sebaran SSD Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
3.2.1.3 Horizontal
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Storage (GB)`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top3, c("#3788A1", "#5494A3", "#65AEB9"),
"#dddddd")
) +
labs(x = "SSD (GB)", y = "Persentase (%)\n",
title = "Sebaran SSD Laptop",
subtitle = "Mayoritas kapasitas penyimpanan SSD-nya berapa ya?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 4)) +
theme1.2 + coord_flip()
chart
#Export Chart
ggsave("03.4_Sebaran SSD Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 14)
3.3 Bar Chart HDD
3.3.1 Variasi
3.3.1.1 Tidak Urut
# Membuat bar chart persentase
gg.data <- data %>%
filter(grepl("HDD", `Storage Type`, ignore.case = TRUE)) %>%
count(`Storage (GB)`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Storage (GB)`, `Storage (GB)`), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#3788A1"),
"#dddddd")
) +
labs(x = "HDD (GB)", y = "Persentase (%)\n",
title = "Sebaran HDD Laptop",
subtitle = "Mayoritas kapasitas penyimpanan HDD-nya berapa ya?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("03.5_Sebaran HDD Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
3.3.1.2 Urut
# Membuat bar chart persentase
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Storage (GB)`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#3788A1"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "HDD (GB)", y = "Persentase (%)\n",
title = "Sebaran HDD Laptop",
subtitle = "Mayoritas kapasitas penyimpanan HDD-nya berapa ya?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("03.6_Sebaran HDD Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
3.3.1.3 Horizontal
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Storage (GB)`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#3788A1"),
"#dddddd")
) +
labs(x = "HDD (GB)", y = "Persentase (%)\n",
title = "Sebaran HDD Laptop",
subtitle = "Mayoritas kapasitas penyimpanan HDD-nya berapa ya?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 9)) +
theme1.2 + coord_flip()
chart
#Export Chart
ggsave("03.7_Sebaran HDD Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 14)
3.4 Sebaran
3.4.1 Variasi
3.4.1.1 Sebaran Storage Score
install_load('ggtext')
chart <-
ggplot(data, aes(x=`Storage Score`,
y='')) +
#Violin
geom_violin(scale="count", fill='#3788A1', color='black', alpha=0.9,
trim = FALSE) +
#Boxplot
geom_boxplot(fill='#504E58', color='black',
outlier.size=2, outlier.color='#504E58',
notch=T, width=0.2) +
#Mean Marker
stat_summary(fun = mean, geom = "point", shape = 16, size = 4,
color = "cyan2") +
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nStorage Score", y='',
title = "Sebaran Storage Score",
subtitle = "Kebanyakan laptop punya score berapa sih?\n") + theme2 +
#Tambah Mean Value
geom_richtext(
data = data.frame(x = mean(data$`Storage Score`), y = 1.25,
label = paste("Mean:",
round(mean(data$`Storage Score`) ,
2))),
aes(x, y, label = label), size = 7, color = "#504E58",
fill = "white", box.color = "#504E58", parse = TRUE
) +
#Tambah panah
geom_segment(aes(x = mean(data$`Storage Score`) ,
xend = mean(data$`Storage Score`) ,
y = 1,
yend = 1.225),
arrow = arrow(type = "closed", length = unit(0.1, "inches")),
lineend = "round", color = "cyan2")
chart
#Export Chart
ggsave("03.8_Sebaran Storage Score.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
3.4.1.2 Sebaran Storage Score Per Tipe
data$`Storage Type` <- factor(data$`Storage Type`,
levels= data %>% count(`Storage Type`) %>%
arrange(n, desc(`Storage Type`)) %>%
pull(`Storage Type`) )
chart <-
ggplot(data, aes(x=`Storage Score`, y=`Storage Type`, fill=`Storage Type`)) +
geom_density_ridges() +
#COLORING
scale_fill_manual(values =c(SSD = "#3788A1", HDD = "#504E58")) +
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nStorage Score",y = "Tipe Storage\n",
title = "Sebaran Storage Score Per Tipe Penyimpanan",
subtitle = "SSD dan HDD punya rentang Score berapa ya?") + theme2
chart
#Export Chart
ggsave("03.9_Sebaran Storage Score Per Tipe Penyimpanan.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
3.4.1.3 Sebaran Storage Score Per Laptop Brand
data$Brand <- factor(data$Brand,
levels= data %>% count(Brand) %>%
arrange(n, desc(Brand)) %>%
pull(Brand) )
chart <-
ggplot(data, aes(x=`Storage Score`, y=Brand, fill=Brand)) +
geom_density_ridges() +
#COLORING
scale_fill_viridis(alpha = 0.75, #Opacity
begin = 0.1, #Color pallte scale begins
end = 0.9, #Color pallte scale ends
direction = -1, #Flip color scale
discrete = T, #Discrete Value
option = "G") + #Color Palette
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nStorage Score",y = "Brand Laptop\n",
title = "Sebaran Storage Score Per Laptop Brand",
subtitle = "Tiap brand laptop punya rentang storage score berapa ya?\n") +
theme2 +
annotate(
geom = "richtext",
x = -Inf, y = 1.25,
label = "<b>Tidak ada sebaran</b> pada merek laptop <b>Toshiba</b>, <b>Chuwi</b>, dan <b>Fusion5</b>\n\n karena jumlah data untuk ketiga merek tersebut sangat terbatas, yaitu <b>kurang dari 3</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.1, size = 7, fill=NA
)
chart
#Export Chart
ggsave("03.10_Sebaran Storage Score Per Laptop Brand.png",
chart, path = export.chart,
dpi = 300, height = 14, width = 20)
3.5 Scatterplot Storage Score & Harga
chart <-
ggplot(data = data, aes(x = `Storage Score`, y = `Price (IDR)`/1000, color = `Storage Type`)) +
geom_point(alpha = 0.5, size = 7, col="#3788A1") +
geom_smooth(method = "lm", formula = y ~ x, se = FALSE, size = 0.5) +
labs(title='Scatterplot Storage Score dengan Harga',
subtitle = 'Bagaimana ya pola hubungan storage score dengan harga?\n',
x = "\nStorage Score", y = "Ribu IDR\n", color = "Storage Type") +
theme3.2 +
geom_text(aes(x = 30000,
y = 100000,
label = paste("R =", round(cor(data$`Storage Score`,
data$`Price (IDR)`), 2))),
color = "black", size = 20)
chart
#Export Chart
ggsave("03.11_Scatterplot Storage Score dengan Harga.png",
chart, path = export.chart,
dpi = 300, height = 20, width = 20)
4 Display
Pisahkan data.
install_load('tidyr')
data <- data %>%
separate(Display, into = c("Screen Size (Inch)", "Resolution",
"Screen Type","Refresh Rate (Hz)" ),
sep = ", ", remove = FALSE) %>%
mutate(
# Menghapus karakter " dan mengubah menjadi numerik
`Screen Size (Inch)` = as.numeric(gsub("[^0-9.]", "", `Screen Size (Inch)`)),
#Tukar Kolom jika ada hz
temp = `Refresh Rate (Hz)`,
#Ubah hz jadi numerik
`Refresh Rate (Hz)` = ifelse(grepl("Hz", `Screen Type`),
as.numeric(gsub("[^0-9.]", "", `Screen Type`)),
#Jika tidak ada, beri nilai minimal hz laptop yakni 60 hz
60),
`Screen Type` = ifelse(grepl("Hz", `Screen Type`), temp, `Screen Type`)
) %>% select(-temp) %>%
mutate(`Screen Type` = ifelse(is.na(`Screen Type`), "LCD", `Screen Type`))
4.1 Bar Chart Screen Size
4.1.1 Variasi
4.1.1.1 Tidak Urut
# Membuat bar chart persentase
gg.data <- data %>%
count(`Screen Size (Inch)`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Screen Size (Inch)`, `Screen Size (Inch)`), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nScreen Size", y = "Persentase (%)\n",
title = "Sebaran Screen Size Laptop",
subtitle = 'Berapa ya ukuran laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("04.1_Sebaran Screen Size Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.1.1.2 Urut
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Screen Size (Inch)`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nScreen Size", y = "Persentase (%)\n",
title = "Sebaran Screen Size Laptop",
subtitle = 'Berapa ya ukuran laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("04.2_Sebaran Screen Size Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.2 Bar Chart Resolution
data <- data %>%
mutate( # Mencari semua kemungkinan pasangan angka dalam kolom "Resolution"
Resolution_Num = str_extract_all(Resolution, "\\d{2,}"),
# Mengambil pasangan angka yang memiliki dua angka di dalamnya
Resolution_Num = sapply(Resolution_Num,
function(x) if (length(x) == 2) paste(x, collapse = "x") else NA)
) %>% # Pisahkan "Width" dan "Height" dari "Resolution_Num"
separate(Resolution_Num, into = c("Width", "Height"), sep = "x",
convert = TRUE, remove = FALSE) %>%
# Berikan bobot jika ada kata PixelSense dalam kolom resolusi
mutate(
Resolution = ifelse(grepl("PixelSense", Resolution),
Width * Height * 1.125,
Width * Height)
) %>% select(-Resolution_Num, -Width, -Height)
# Membuat bar chart persentase
gg.data <- data %>%
count(Resolution) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(Resolution, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nResolution", y = "Persentase (%)\n",
title = "Sebaran Resolution Laptop",
subtitle = 'Berapa ya hasil kali resolusi laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("04.3_Sebaran Resolution Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.3 Bar Chart Screen Type
4.3.1 Variasi
4.3.1.1 Vertikal
# Membuat bar chart persentase
gg.data <- data %>%
count(`Screen Type`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Screen Type`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nScreen Type", y = "Persentase (%)\n",
title = "Sebaran Screen Type Laptop",
subtitle = 'Apa tipe layar laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("04.4_Sebaran Screen Type Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.3.1.2 Horizontal
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Screen Type`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
labs(x = "Screen Type", y = "Persentase (%)",
title = "Sebaran Screen Type Laptop",
subtitle = 'Apa tipe layar laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 10)) +
theme1.2 + coord_flip()
chart
#Export Chart
ggsave("04.5_Sebaran Screen Type Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 14)
4.4 Bar Chart Refresh Rate
4.4.1 Variasi
4.4.1.1 Tidak Urut
# Membuat bar chart persentase
gg.data <- data %>%
count(`Refresh Rate (Hz)`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Refresh Rate (Hz)`, `Refresh Rate (Hz)`), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nRefresh Rate (Hz)", y = "Persentase (%)\n",
title = "Sebaran Refresh Rate Laptop",
subtitle = 'Berapa Hz ya refresh rate laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("04.6_Sebaran Refresh Rate (Hz) Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.4.1.2 Urut
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Refresh Rate (Hz)`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nRefresh Rate (Hz)", y = "Persentase (%)\n",
title = "Sebaran Refresh Rate Laptop",
subtitle = 'Berapa Hz ya refresh rate laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("04.7_Sebaran Refresh Rate (Hz) Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.4.1.3 Horizontal
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Refresh Rate (Hz)`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#6F3E98"),
"#dddddd")
) +
labs(x = "\nRefresh Rate (Hz)", y = "Persentase (%)\n",
title = "Sebaran Refresh Rate Laptop",
subtitle = 'Berapa Hz ya refresh rate laptop yang paling banyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 9)) +
theme1.2 + coord_flip()
chart
#Export Chart
ggsave("04.8_Sebaran Refresh Rate (Hz) Laptop_Horizontal.png", chart, path = export.chart,
dpi = 300, height = 20, width = 14)
4.5 Sebaran
4.5.1 Variasi
4.5.1.1 Sebaran Display Score
chart <-
ggplot(data, aes(x=`Display Score`,
y='')) +
#Violin
geom_violin(scale="count", fill='#6F3E98', color='black', alpha=0.9,
trim = FALSE) +
#Boxplot
geom_boxplot(fill='#65AEB9', color='black',
outlier.size=2, outlier.color='#65AEB9',
notch=T, width=0.1) +
#Mean Marker
stat_summary(fun = mean, geom = "point", shape = 16, size = 4,
color = "cyan2") +
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nDisplay Score", y='',
title = "Sebaran Display Score Laptop",
subtitle = 'Kebanyakan laptop punya display score berapa ya?\n') + theme2 +
#Tambah Mean Value
geom_richtext(
data = data.frame(x = mean(data$`Display Score`) , y = 1.25,
label = paste("Mean:",
round(mean(data$`Display Score`) ,
2))),
aes(x, y, label = label), size = 7, color = "#65AEB9",
fill = "white", box.color = "#65AEB9", parse = TRUE
) +
#Tambah panah
geom_segment(aes(x = mean(data$`Display Score`) ,
xend = mean(data$`Display Score`) ,
y = 1,
yend = 1.225),
arrow = arrow(type = "closed", length = unit(0.1, "inches")),
lineend = "round", color = "cyan2")
chart
#Export Chart
ggsave("04.9_Sebaran Display Score Laptop.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
4.5.1.2 Sebaran Display Score Per Laptop Brand
data$Brand <- factor(data$Brand,
levels= data %>% count(Brand) %>%
arrange(n, desc(Brand)) %>%
pull(Brand) )
chart <-
ggplot(data, aes(x=`Display Score`, y=Brand, fill=Brand)) +
geom_density_ridges() +
#COLORING
scale_fill_viridis(alpha = 0.75, #Opacity
begin = 0.1, #Color pallte scale begins
end = 0.5, #Color pallte scale ends
direction = -1, #Flip color scale
discrete = T, #Discrete Value
option = "A") + #Color Palette
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nHarga (Ribu IDR)",y = "Brand Laptop\n",
title = "Sebaran Harga Brand Laptop",
subtitle = "Tiap brand laptop punya rentang display score berapa ya?\n") + theme2 +
annotate(
geom = "richtext",
x = -Inf, y = 1.25,
label = "<b>Tidak ada sebaran</b> pada merek laptop <b>Toshiba</b>, <b>Chuwi</b>, dan <b>Fusion5</b>\n\n karena jumlah data untuk ketiga merek tersebut sangat terbatas, yaitu <b>kurang dari 3</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.1, size = 7, fill=NA
)
chart
#Export Chart
ggsave("04.10_Sebaran Display Score Laptop.png",
chart, path = export.chart,
dpi = 300, height = 14, width = 20)
4.6 Scatterplot Display Score & Harga
chart <-
ggplot(data = data, aes(x = `Display Score`, y = `Price (IDR)`/1000)) +
geom_point(alpha = 0.5, size = 7, col="#6F3E98") +
geom_smooth(method = "lm", formula = y ~ x, se = FALSE, size = 0.5) +
labs(title='Scatterplot Display Score dengan Harga',
subtitle = 'Bagaimana ya pola hubungan display score dengan harga?\n',
x = "\nDisplay Score", y = "Ribu IDR\n", color = "Storage Type") +
theme3.2 +
geom_text(aes(x = 150,
y = 100000,
label = paste("R =", round(cor(data$`Display Score`,
data$`Price (IDR)`), 2))),
color = "black", size = 20)
chart
#Export Chart
ggsave("04.11_Scatterplot Display Score dengan Harga.png",
chart, path = export.chart,
dpi = 300, height = 20, width = 20)
5 RAM
5.1 Bar Chart RAM
5.1.1 Variasi
5.1.1.1 Tidak Urut
# Membuat bar chart persentase
gg.data <- data %>%
count(`Ram (GB)`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Ram (GB)`, `Ram (GB)`), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#008881"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nRAM (GB)", y = "Persentase (%)\n",
title = "Sebaran RAM Laptop",
subtitle = 'RAM laptop terbanyak punya kapasitas berapa ya?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("05.1_Sebaran RAM (GB) Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
5.1.1.2 Urut
# Membuat bar chart persentase
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Ram (GB)`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#008881"),
"#dddddd")
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nRAM (GB)", y = "Persentase (%)\n",
title = "Sebaran RAM Laptop",
subtitle = 'RAM laptop terbanyak punya kapasitas berapa ya?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("05.2_Sebaran RAM (GB) Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
5.1.1.3 Horizontal
chart <-
ggplot(data = gg.data,
aes(x = reorder(`Ram (GB)`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$top1, c("#008881"),
"#dddddd")
) +
labs(x = "\nRAM (GB)", y = "Persentase (%)\n",
title = "Sebaran RAM Laptop",
subtitle = 'RAM laptop terbanyak punya kapasitas berapa ya?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 9)) +
theme1.2 + coord_flip()
chart
#Export Chart
ggsave("05.3_Sebaran RAM (GB) Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 14)
5.2 Scatterplot RAM & Price
chart <-
ggplot(data = data, aes(x = `Ram (GB)`, y = `Price (IDR)`/1000)) +
geom_point(alpha = 0.5, size = 7, col="#008881") +
geom_smooth(method = "lm", formula = y ~ x, se = FALSE, size = 0.5) +
labs(title='Scatterplot RAM dengan Harga',
subtitle = 'Bagaimana ya pola hubungan RAM dengan harga?\n',
x = "\nRAM (GB)", y = "Ribu IDR\n", color = "Storage Type") +
theme3.2 +
geom_text(aes(x = 100,
y = 100000,
label = paste("R =", round(cor(data$`Ram (GB)`,
data$`Price (IDR)`), 2))),
color = "black", size = 20)
chart
#Export Chart
ggsave("05.4_Scatterplot RAM (GB) dengan Harga.png",
chart, path = export.chart,
dpi = 300, height = 10, width = 20)
6 CPU
6.1 Bar Chart CPU Brand
6.1.1 Variasi
6.1.1.1 Vertikal
# Membuat bar chart persentase
gg.data <- data %>%
count(`CPU Brand`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) # Urutkan
chart <-
ggplot(data = gg.data,
aes(x = reorder(`CPU Brand`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$`CPU Brand` == 'Intel', "#1D4B83",
ifelse(gg.data$`CPU Brand` == 'AMD', "#E06C26",
"#dddddd"))) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nCPU Brand", y = "Persentase (%)\n",
title = "Sebaran CPU Brand Laptop",
subtitle = 'Apa sih CPU brand terbanyak?\n') +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("06.1_Sebaran CPU Brand Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
6.1.1.2 Hozizontal
chart <-
ggplot(data = gg.data, #buat persentase
aes(x = reorder(`CPU Brand`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill= ifelse(gg.data$`CPU Brand` == 'Intel', "#1D4B83",
ifelse(gg.data$`CPU Brand` == 'AMD', "#E06C26",
"#dddddd"))) +
labs(x = "\nCPU Brand", y = "Persentase (%)\n",
title = "Sebaran CPU Brand Laptop",
subtitle = 'Apa sih CPU brand terbanyak?\n') + coord_flip() +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 10)) + theme1.2
chart
#Export Chart
ggsave("06.2_Sebaran CPU Brand Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 17)
6.2 Sebaran
6.2.1 Variasi
6.2.1.1 Sebaran CPU Score
chart <-
ggplot(data, aes(x=`CPU Score`,
y='')) +
#Violin
geom_violin(scale="count", fill='#E06C26', color='black', alpha=0.9,
trim = FALSE) +
#Boxplot
geom_boxplot(fill='#1D4B83', color='black',
outlier.size=2, outlier.color='#1D4B83',
notch=T, width=0.2) +
#Mean Marker
stat_summary(fun = mean, geom = "point", shape = 16, size = 4,
color = "cyan2") +
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nCPU Score", y='',
title = "Sebaran CPU Score Laptop",
subtitle = 'Kebanyakan laptop punya CPU score berapa ya?\n') + theme2 +
#Tambah Mean Value
geom_richtext(
data = data.frame(x = mean(data$`CPU Score`) , y = 1.25,
label = paste("Mean:",
round(mean(data$`CPU Score`) ,
2))),
aes(x, y, label = label), size = 7, color = "#1D4B83",
fill = "white", box.color = "#1D4B83", parse = TRUE
) +
#Tambah panah
geom_segment(aes(x = mean(data$`CPU Score`) ,
xend = mean(data$`CPU Score`) ,
y = 1,
yend = 1.225),
arrow = arrow(type = "closed", length = unit(0.1, "inches")),
lineend = "round", color = "cyan2")
chart
#Export Chart
ggsave("06.3_Sebaran CPU Score Laptop.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
6.2.1.2 Sebaran CPU Score Per CPU Brand
data$`CPU Brand` <- factor(data$`CPU Brand`,
levels= data %>% count(`CPU Brand`) %>%
arrange(n, desc(`CPU Brand`)) %>%
pull(`CPU Brand`) )
chart <-
ggplot(data, aes(x=`CPU Score`, y=`CPU Brand`, fill=`CPU Brand`)) +
geom_density_ridges(alpha=0.85) +
#COLORING
scale_fill_manual(values =c(Intel = "#1D4B83", AMD = "#d65c2d",
Apple = "#777D91", Mediatek = '#F7B747')) +
labs(x = "\nCPU Score",y = "CPU Brand\n",
title = "Sebaran CPU Score Per CPU Brand",
subtitle = "Tiap brand CPU punya rentang CPU score berapa ya?\n") +
theme2 + theme(legend.position = "none") +
annotate(
geom = "richtext",
x = -Inf, y = 1,
label = "<b>Tidak ada sebaran</b> pada merek <b>Qualcomm</b> \n\n karena hanya memiliki <b> satu data</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.15, size = 7, fill=NA
)
chart
#Export Chart
ggsave("06.4_Sebaran CPU Score Per CPU Brand.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
6.2.1.3 Sebaran CPU Score Per Laptop Brand
data$Brand <- factor(data$Brand,
levels= data %>% count(Brand) %>%
arrange(n, desc(Brand)) %>%
pull(Brand) )
chart <-
ggplot(data, aes(x=`CPU Score`, y=Brand, fill=Brand)) +
geom_density_ridges() +
#COLORING
scale_fill_viridis(alpha = 0.85, #Opacity
begin = 0.5, #Color pallte scale begins
end = 0.8, #Color pallte scale ends
direction = -1, #Flip color scale
discrete = T, #Discrete Value
option = "B") + #Color Palette
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nCPU Score",y = "Brand Laptop\n",
title = "Sebaran CPU Score per Brand Laptop",
subtitle = "Tiap brand laptop punya rentang CPU score berapa ya?\n") + theme2 +
annotate(
geom = "richtext",
x = -Inf, y = 1.25,
label = "<b>Tidak ada sebaran</b> pada merek laptop <b>Toshiba</b>, <b>Chuwi</b>, dan <b>Fusion5</b>\n\n karena jumlah data untuk ketiga merek tersebut sangat terbatas, yaitu <b>kurang dari 3</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.1, size = 7, fill=NA
)
chart
#Export Chart
ggsave("06.5_Sebaran CPU Score per Brand Laptop.png",
chart, path = export.chart,
dpi = 300, height = 14, width = 20)
6.3 Scatterplot CPU & Harga
chart <-
ggplot(data = data, aes(x = `CPU Score`, y = `Price (IDR)`/1000)) +
geom_point(alpha = 0.5, size = 7, col="#d65c2d") +
geom_smooth(method = "lm", formula = y ~ x, se = FALSE, size = 0.5) +
labs(title='Scatterplot CPU Score dengan Harga',
subtitle = 'Bagaimana ya pola hubungan CPU score dengan harga?\n',
x = "\nCPU Score", y = "Ribu IDR\n", color = "Storage Type") +
theme3.2 +
geom_text(aes(x = 100,
y = 100000,
label = paste("R =", round(cor(data$`CPU Score`,
data$`Price (IDR)`), 2))),
color = "black", size = 20)
chart
#Export Chart
ggsave("06.6_Scatterplot CPU Score dengan Price.png",
chart, path = export.chart,
dpi = 300, height = 10, width = 20)
7 GPU
7.1 Bar Chart GPU Brand
7.1.1 Variasi
7.1.1.1 Vertikal
# Membuat bar chart persentase
gg.data <- data %>%
count(`GPU Brand`) %>% # banyaknya laptop brand x
mutate(perc = round(n / sum(n) * 100)) %>% #buat persentase,
arrange(desc(n)) %>% # Urutkan
mutate(top1 = row_number() <= 1) # Top 1 n terbanyak
chart <-
ggplot(data = gg.data,
aes(x = reorder(`GPU Brand`, -n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$`GPU Brand` == 'Intel', "#1D4B83",
ifelse(gg.data$`GPU Brand` == 'NVIDIA', "#84C441",
ifelse(gg.data$`GPU Brand` == 'AMD', "#DA1F27",
"#dddddd")
)
)
) +
geom_text(aes(label = prettyNum(n,big.mark = ",")
), vjust = -0.5, size = 8, col="orange4",
fontface = "bold") + # Tambahkan label
labs(x = "\nGPU Brand", y = "Persentase (%)\n",
title = "Sebaran GPU Brand Laptop",
subtitle = "Brand GPU apa sih yang paling banyak?\n") +
scale_y_continuous(labels = scales::percent_format(scale = 1)) +
theme1.1
chart
#Export Chart
ggsave("07.1_Sebaran GPU Brand Laptop.png", chart, path = export.chart,
dpi = 300, height = 14, width = 20)
7.1.1.2 Horizontal
chart <-
ggplot(data = gg.data, #buat persentase
aes(x = reorder(`GPU Brand`, n), y = perc)) +
geom_bar(stat = "identity", col=NA,
fill = ifelse(gg.data$`GPU Brand` == 'Intel', "#1D4B83",
ifelse(gg.data$`GPU Brand` == 'NVIDIA', "#84C441",
ifelse(gg.data$`GPU Brand` == 'AMD', "#DA1F27",
"#dddddd")
)
)
) +
labs(x = "\nGPU Brand", y = "Persentase (%)\n",
title = "Sebaran GPU Brand Laptop",
subtitle = "Brand GPU apa sih yang paling banyak?\n") + coord_flip() +
scale_y_continuous(labels = scales::percent_format(scale = 1),
expand = c(0, 10)) + theme1.2
chart
#Export Chart
ggsave("07.2_Sebaran GPU Brand Laptop.png", chart, path = export.chart,
dpi = 300, height = 20, width = 17)
7.2 Sebaran
7.2.1 Variasi
7.2.1.1 Sebaran GPU Score
chart <-
ggplot(data, aes(x=`GPU Score`,
y='')) +
#Violin
geom_violin(scale="count", fill='#84C441', color='black', alpha=0.9,
trim = FALSE) +
#Boxplot
geom_boxplot(fill='#2C68AF', color='black',
outlier.size=2, outlier.color='#2C68AF',
notch=T, width=0.1, alpha=0.5) +
#Mean Marker
stat_summary(fun = mean, geom = "point", shape = 16, size = 4,
color = "cyan2") +
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nGPU Score", y='',
title = "Sebaran GPU Score Laptop",
subtitle = 'Kebanyakan laptop punya GPU score berapa ya?\n') + theme2 +
#Tambah Mean Value
geom_richtext(
data = data.frame(x = mean(data$`GPU Score`) , y = 1.25,
label = paste("Mean:",
round(mean(data$`GPU Score`) ,
2))),
aes(x, y, label = label), size = 7, color = "#2C68AF",
fill = "white", box.color = "#2C68AF", parse = TRUE
) +
#Tambah panah
geom_segment(aes(x = mean(data$`GPU Score`) ,
xend = mean(data$`GPU Score`) ,
y = 1,
yend = 1.225),
arrow = arrow(type = "closed", length = unit(0.1, "inches")),
lineend = "round", color = "cyan2")
chart
#Export Chart
ggsave("07.3_Sebaran GPU Score Laptop.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
7.2.1.2 Sebaran GPU Score per GPU Brand
data$`GPU Brand` <- factor(data$`GPU Brand`,
levels= data %>% count(`GPU Brand`) %>%
arrange(n, desc(`GPU Brand`)) %>%
pull(`GPU Brand`) )
chart <-
ggplot(data, aes(x=`GPU Score`, y=`GPU Brand`, fill=`GPU Brand`)) +
geom_density_ridges(alpha=0.75) +
#COLORING
scale_fill_manual(values =c(Intel = "#1D4B83", AMD = "#DA1F27",
NVIDIA = "#84C441", Apple = '#777D91',
ARM = '#35A8CA', Imagination='#71256B')) +
labs(x = "\nGPU Score",y = "GPU Brand\n",
title = "Sebaran GPU Score Per GPU Brand",
subtitle = "Tiap brand GPU punya rentang CPU score berapa ya?\n") +
theme2 + theme(legend.position = "none") +
annotate(
geom = "richtext",
x = -Inf, y = 0.7,
label = "<b>Tidak ada sebaran</b> pada merek <b>Qualcomm</b> \n\n karena hanya memiliki <b> satu data</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.15, size = 7, fill=NA
)
chart
#Export Chart
ggsave("07.4_Sebaran GPU Score Per GPU Brand.png", chart, path = export.chart,
dpi = 300, height = 10, width = 20)
7.2.1.3 Sebaran GPU Score per Laptop Brand
data$Brand <- factor(data$Brand,
levels= data %>% count(Brand) %>%
arrange(n, desc(Brand)) %>%
pull(Brand) )
chart <-
ggplot(data, aes(x=`GPU Score`, y=Brand, fill=Brand)) +
geom_density_ridges() +
#COLORING
scale_fill_viridis(alpha = 0.75, #Opacity
begin = 0.4, #Color pallte scale begins
end = 0.8, #Color pallte scale ends
direction = -1, #Flip color scale
discrete = T, #Discrete Value
option = "D") + #Color Palette
theme(plot.title = element_text(hjust=0.5),legend.position = "none") +
labs(x = "\nGPU Score",y = "Brand Laptop\n",
title = "Sebaran GPU Score per Brand Lapto",
subtitle = "Tiap brand laptop punya rentang GPU score berapa ya?\n") + theme2 +
annotate(
geom = "richtext",
x = -Inf, y = 1.25,
label = "<b>Tidak ada sebaran</b> pada merek laptop <b>Toshiba</b>, <b>Chuwi</b>, dan <b>Fusion5</b>\n\n karena jumlah data untuk ketiga merek tersebut sangat terbatas, yaitu <b>kurang dari 3</b>.",
vjust = 0, label.padding = unit(0.2, "lines"),
parse = TRUE,
hjust = -0.1, size = 7
)
chart
#Export Chart
ggsave("07.5_Sebaran GPU Score per Brand Laptop.png",
chart, path = export.chart,
dpi = 300, height = 14, width = 20)
7.3 Scatterplot GPU & Price
chart <-
ggplot(data = data, aes(x = `GPU Score`, y = `Price (IDR)`/1000)) +
geom_point(alpha = 0.5, size = 7, col="#84C441") +
geom_smooth(method = "lm", formula = y ~ x, se = FALSE, size = 0.5) +
labs(title='Scatterplot GPU Score dengan Price',
subtitle = 'Bagaimana ya pola hubungan GPU score dengan harga?\n',
x = "\nGPU Score", y = "Ribu IDR\n", color = "Storage Type") +
theme3.2 +
geom_text(aes(x = 30,
y = 100000,
label = paste("R =", round(cor(data$`GPU Score`,
data$`Price (IDR)`), 2))),
color = "black", size = 20)
chart
#Export Chart
ggsave("07.6_Scatterplot GPU Score dengan Price.png",
chart, path = export.chart,
dpi = 300, height = 10, width = 20)
8 Referensi
Notes : Hanya Orang Gabut yang baca ini