## Library
library(data.table)
## Warning: package 'data.table' was built under R version 4.1.2
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.5 v dplyr 1.0.7
## v tidyr 1.1.4 v stringr 1.4.0
## v readr 2.1.1 v forcats 0.5.1
## Warning: package 'ggplot2' was built under R version 4.1.2
## Warning: package 'tibble' was built under R version 4.1.1
## Warning: package 'tidyr' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2
## Warning: package 'purrr' was built under R version 4.1.2
## Warning: package 'dplyr' was built under R version 4.1.2
## Warning: package 'stringr' was built under R version 4.1.1
## Warning: package 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::between() masks data.table::between()
## x dplyr::filter() masks stats::filter()
## x dplyr::first() masks data.table::first()
## x dplyr::lag() masks stats::lag()
## x dplyr::last() masks data.table::last()
## x purrr::transpose() masks data.table::transpose()
## Input Data
StudentPerformance <- read.csv("C:/Users/hp/Documents/MY DEPARTEMEN/#4/VISDAT/Data Tugas 2 - Praktikum Visualisasi Data.csv")
## View Data
View(StudentPerformance)
ggplot(StudentPerformance, aes(x=reorder(parental.level.of.education, +table(parental.level.of.education)[parental.level.of.education]), fill=parental.level.of.education)) +
geom_bar() +
scale_fill_manual(values=c("#C0D8C0", "#F5EEDC", "#DD4A48",
"#ECB390", "#781D42", "#A3423C")) +
labs(title="Sebaran Tingkat Pendidikan Orang Tua",
x="Pendidikan Orang Tua", y="Frekuensi") +
theme(plot.title = element_text(hjust = 0.5))
Berdasarkan visualisasi sebaran data berupa barplot di atas, informasi mengenai data sebaran tingkat pendidikan orang tua dapat diurutkan dari yang tertinggi ke terendah berturut-turut yaitu some collage, associate’s degree, high school, some high school, bachelor’s degree, dan master’s degree.
StudentPerformance$gender<- as.factor(StudentPerformance$gender)
StudentPerformance %>%
count(gender) %>%
mutate(gender=fct_reorder(gender, n, .desc = F)) %>%
ggplot(aes(x=gender, y=n, fill=gender)) +
scale_fill_manual(values=c("#BF9270","#E3B7A0")) +
ggtitle("Sebaran Jenis Kelamin Siswa") +
labs(y="Jumlah Siswa", x="Jenis Kelamin") +
theme(plot.title = element_text(hjust = 0.5)) + geom_bar(stat='identity')
Berdasarkan visualisasi sebaran data berupa barplot di atas, informasi mengenai data sebaran jenis kelamin siswa, menunjukkan bahwa siswa yang berjenis kelamin perempuan (female) lebih banyak daripada siswa jenis kelamin laki-laki (male).
ggplot(StudentPerformance, aes(x=gender, y=math.score, fill=gender)) +
ggtitle("Sebaran Nilai Matematika Siswa") +
scale_fill_manual(values=c("#A3DA8D","146356")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_boxplot()
ggplot(StudentPerformance, aes(x=gender, y=reading.score, fill=gender)) +
ggtitle("Sebaran Nilai Membaca Siswa") +
scale_fill_manual(values=c("#A3DA8D","146356")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_boxplot()
ggplot(StudentPerformance, aes(x=gender, y=writing.score, fill=gender)) +
ggtitle("Sebaran Nilai Menulis Siswa") +
scale_fill_manual(values=c("#A3DA8D","146356")) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_boxplot()
Berdasarkan visualisasi sebaran data berupa ketiga boxplot di atas, informasi mengenai data ketiga aspek nilai siswa, nilai matematika siswa laki-laki lebih unggul daripada siswa perempuan. Namun, siswa perempuan lebih unggul dalam nilai membaca dan menulis.
ggplot(StudentPerformance, aes(x=race.ethnicity, y=math.score, fill=race.ethnicity)) +
geom_violin(trim=FALSE) + scale_y_log10() +
stat_summary(fun.y="mean", geom="point", shape=6, size=3, color="#A3423C")+
stat_summary(fun.y="median", geom="point", shape=8, size=3, color="#DE834D")+
labs(title="Hubungan antara Ras dan Nilai Matematika",
x="Ras atau Etnis", y="Nilai Matematika")+
theme(plot.title = element_text(hjust = 0.5))
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: `fun.y` is deprecated. Use `fun` instead.
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 1 rows containing non-finite values (stat_ydensity).
## Warning: Removed 1 rows containing non-finite values (stat_summary).
## Warning: Removed 1 rows containing non-finite values (stat_summary).
Berdasarkan visualisasi sebaran data berupa violin plot di atas, informasi mengenai data mengenai hubungan antara ras dengan nilai matematika siswa bahwa nilai matematika milik grup E merupakan yang tertinggi karena semakin cembung violin plot maka kepadatan data peluangnya semakin besar. Selain itu, nilai matematika milik grup B terdapat ragam yang paling besar karena banyak pencilan serta range nilai dapat yang lebar.
setnames(StudentPerformance,"test.preparation.course","kursus")
ggplot(StudentPerformance, aes(kursus, fill=parental.level.of.education)) +
geom_bar() +
labs(title = "Hubungan antara Kursus dan Tingkat Pendidikan Orang Tua",
x="Tutor", y="Tingkat Pendidikan Orang Tua")+
theme(plot.title = element_text(hjust = 0.5))
Berdasarkan visualisasi sebaran data berupa stacked bar di atas, informasi mengenai data hubungan antara kursus dan tingkat pendidikan orang tua, siswa yang tidak mengikuti kursus lebih banyak daripada yang mengikuti kursus. Dari chart tersebut juga dapat dilihat data tingkat pendidikan orang tua siswa yang mengikuti kursus maupun tidak.
ggplot(StudentPerformance, aes(x = reading.score)) + geom_dotplot(dotsize=0.3) + scale_y_continuous(NULL, breaks = NULL) +
labs(title = "Sebaran Nilai Membaca Siswa",
x="Nilai Membaca") +
theme(plot.title = element_text(hjust = 0.5))
## Bin width defaults to 1/30 of the range of the data. Pick better value with `binwidth`.
Berdasarkan visualisasi sebaran data berupa dot plot di atas, informasi mengenai data sebaran frekuensi nilai membaca, nilai membaca terendah didapatkan siswa yang memiliki nilai dibawah 20, sedangkan nilai tertingginya bernilai 100.
StudentPerformance %>%
group_by(`parental.level.of.education`) %>%
summarise(rataan.matematika = mean(`math.score`)) %>%
ggplot(aes(x=`parental.level.of.education`, y='rataan matematika')) +
geom_point(size=4, col="#92967D") +
geom_segment(aes(x=`parental.level.of.education`, xend=`parental.level.of.education`, y=0, yend=rataan.matematika)) +
geom_label(aes(`parental.level.of.education`, rataan.matematika+1, label=signif(rataan.matematika, 4)), nudge_x = 0.4, size=5) +
labs(title = "Hubungan antara Rataan Nilai Matematika Siswa dan Tingkat Pendidikan Orang Tua",
x = "Tingkat Pendidikan Orang Tua", y="Rataan Nilai") +
theme(plot.title = element_text(hjust = 0.5))
Berdasarkan visualisasi sebaran data berupa dot plot di atas, informasi mengenai data hubungan antara rataan nilai matematika menurut aspek tingkat pendidikan orang tua, rataan nilai matematika tertinggi ke terendah berturut-turut didapatkan oleh siswa yang memiliki orang tuan lulusan S2, S1, D3, some college, some high school, dan yang terendah ialah siswa yang memiliki orang tua lulusan SMA. Dengan demikian, dpat disimpulkan bahwa tingkat pendidikan orang tua berhubungan positif atau berbanding lurus terhadap rataan nilai matematika siswa.