library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.2
DataPrak2 <-read.csv("D:\\semester 4\\Praktikum Visdat\\StudentsPerformance.csv")
head(DataPrak2)
## gender race.ethnicity parental.level.of.education lunch
## 1 female group B bachelor's degree standard
## 2 female group C some college standard
## 3 female group B master's degree standard
## 4 male group A associate's degree free/reduced
## 5 male group C some college standard
## 6 female group B associate's degree standard
## test.preparation.course math.score reading.score writing.score
## 1 none 72 72 74
## 2 completed 69 90 88
## 3 none 90 95 93
## 4 none 47 57 44
## 5 none 76 78 75
## 6 none 71 83 78
Barplot berguna untuk menyajikan perbandingan data pada satu atau beberapa variabel data.Data pada grafik batang disajikan dalam bentuk persegi panjang horizontal, yang panjangnya sesuai dengan nilai masing-masing. Dengan begitu kita bisa melihat dengan cepat dan mudah data mana yang memiliki nilai lebih tinggi dibandingkan dengan data yang lain.
Barplot di bawah ini berisi data perbandingan jumlah anak berdasarkan gender. Menurut Barplot yang tersaji jumlah anak dengan gender female lebih banyak dibandingkan anak dengan gender male.
library(ggplot2)
ggplot(data = DataPrak2) +
geom_bar(mapping=aes(x=gender))
Barplot di bawah ini berisi data perbandingan tingkat pendidikan orang tua. Menurut Barplot yang tersaji, jumlah paling banyak adalah anak dengan pendidikan orang tua some college, diikuti dengan associate’s degree, high school, some high school, bachelor’s degree, serta yang terendah adalah master’s degree.
library(ggplot2)
ggplot(data = DataPrak2) +
geom_bar(mapping=aes(x=parental.level.of.education))
Barplot di bawah ini berisi data hubungan gender dengan kebiasaan makan siang. Menurut Barplot yang tersaji, gender tidak mempengaruhi siswa dalam kebiasaan untuk makan siang.
library(ggplot2)
ggplot(DataPrak2, aes(lunch, fill =gender )) + geom_bar()+
labs(title = "Plot Hubungan Gender dengan Kebiasaan Makan Siang", borders())
Visualisasi di bawah menyajikan data nilai matematika siswa dalam bentuk dotplot. Dari dotplot di bawah, dapat kita lihat bahwa skor matematika terdapat pencilan dengan nilai 0 dan di bawah nilai 25. Untuk nilai matematika tertinggi yang diraih oleh siswa adalah 100.
library(ggplot2)
ggplot(DataPrak2, aes(x = math.score)) +
geom_dotplot(dotsize=0.4) +
scale_y_continuous(NULL, breaks = NULL) +
labs(x="Nilai Matematika")
## Bin width defaults to 1/30 of the range of the data. Pick better value with `binwidth`.
Berdasarkan Violin Plot di bawah mengenai skor matematika siswa dapat diketahui bahwa skor matematika terendah yang didapatkan oleh siswa bernilai 0. Sementara skor matematika tertinggi yang didapatkan oleh siswa sebesar 100. Selain itu, dapat dilihat bahwa nilai matematika dengan frekuensi terbanyak berada pada rentang 60 sampai dengan 80.
library(ggplot2)
library(vioplot)
## Warning: package 'vioplot' was built under R version 4.1.2
## Loading required package: sm
## Warning: package 'sm' was built under R version 4.1.2
## Package 'sm', version 2.2-5.7: type help(sm) for summary information
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.1.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
skormatematika <- DataPrak2$math.score
vioplot(skormatematika)
Berdasarkan lollipop chart di bawah, rata-rata skor membaca berdasarkan gender, dapat kita peroleh informasi bahwa rata-rata nilai membaca lebih tinggi diraih oleh siswa perempuan.
library(ggplot2)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v tibble 3.1.6 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
## v purrr 0.3.4
## Warning: package 'tibble' was built under R version 4.1.2
## 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 'stringr' was built under R version 4.1.2
## Warning: package 'forcats' was built under R version 4.1.2
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
DataPrak2 %>%
group_by(gender) %>%
summarise(rataratabaca = mean(reading.score)) %>%
ggplot(aes(x=gender,y=rataratabaca)) +
geom_point(size = 4, colour = "blue") +
geom_segment(aes(x=gender, xend=gender, y=0, yend=rataratabaca))+
geom_label(aes(gender, rataratabaca+1, label = signif(rataratabaca, 3)),
colour = "red", nudge_x = 0.3, size = 3) +
labs(title="Rata-Rata Skor Membaca Berdasarkan Jenis Kelamin", x = "Jenis Kelamin", y = "Rata-Rata Nilai") +
theme(plot.title = element_text(0.5))
## Warning in grid.Call(C_stringMetric, as.graphicsAnnot(x$label)): font family not
## found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, : font
## family not found in Windows font database
Berdasarkan lollipop chart di bawah, hubungan antara rata-rata nilai matematika dengan kursus persiapan ujian, dapat kita peroleh informasi bahwa rata-rata nilai matematika tertinggi didapatkan oleh siswa yang mengikuti kursus persiapan ujian. Hal ini menunjukkan bahwa kursus persiapan ujian berpengaruh positif terhadap rata-rata skor matematika siswa.
library(ggplot2)
library(tidyverse)
DataPrak2 %>%
group_by(`test.preparation.course`) %>%
summarise(rataratamtk = mean(`math.score`)) %>%
ggplot(aes(x=`test.preparation.course`, y=rataratamtk)) +
geom_point(size=4, col="blue") +
geom_segment(aes(x=`test.preparation.course`, xend=`test.preparation.course`, y=0, yend=rataratamtk)) +
geom_label(aes(`test.preparation.course`, rataratamtk+1, label=signif(rataratamtk, 4)), nudge_x = 0.4, size=5) +
labs(title = "Rata-Rata Nilai Matematika Siswa Berdasarkan Kursus Persiapan Ujian",
x = "Kursus Persiapan Ujian", y="Rata-rata Nilai") +
theme(plot.title = element_text(hjust = 0.5))