Visualisasi Data Pertemuan 10

library(ggplot2)            
## Warning: package 'ggplot2' was built under R version 4.3.2
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'tibble' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.2
## Warning: package 'readr' was built under R version 4.3.2
## Warning: package 'purrr' was built under R version 4.3.2
## Warning: package 'dplyr' was built under R version 4.3.2
## Warning: package 'stringr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.2
## Warning: package 'lubridate' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.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
library(readr)
Sleep <- read.csv("E:/SMT 4/Visdat/P8910/Sleep_health_and_lifestyle_dataset.csv")
summary(Sleep)
##    Person.ID         Gender               Age         Occupation       
##  Min.   :  1.00   Length:374         Min.   :27.00   Length:374        
##  1st Qu.: 94.25   Class :character   1st Qu.:35.25   Class :character  
##  Median :187.50   Mode  :character   Median :43.00   Mode  :character  
##  Mean   :187.50                      Mean   :42.18                     
##  3rd Qu.:280.75                      3rd Qu.:50.00                     
##  Max.   :374.00                      Max.   :59.00                     
##  Sleep.Duration  Quality.of.Sleep Physical.Activity.Level  Stress.Level  
##  Min.   :5.800   Min.   :4.000    Min.   :30.00           Min.   :3.000  
##  1st Qu.:6.400   1st Qu.:6.000    1st Qu.:45.00           1st Qu.:4.000  
##  Median :7.200   Median :7.000    Median :60.00           Median :5.000  
##  Mean   :7.132   Mean   :7.313    Mean   :59.17           Mean   :5.385  
##  3rd Qu.:7.800   3rd Qu.:8.000    3rd Qu.:75.00           3rd Qu.:7.000  
##  Max.   :8.500   Max.   :9.000    Max.   :90.00           Max.   :8.000  
##  BMI.Category       Blood.Pressure       Heart.Rate     Daily.Steps   
##  Length:374         Length:374         Min.   :65.00   Min.   : 3000  
##  Class :character   Class :character   1st Qu.:68.00   1st Qu.: 5600  
##  Mode  :character   Mode  :character   Median :70.00   Median : 7000  
##                                        Mean   :70.17   Mean   : 6817  
##                                        3rd Qu.:72.00   3rd Qu.: 8000  
##                                        Max.   :86.00   Max.   :10000  
##  Sleep.Disorder    
##  Length:374        
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

Visualisasi Hubungan Antar Peubah

1. Hubungan Age dengan Sleep Duration berdasarkan Jenis Kelamin

Fml <- Sleep %>% filter(Sleep$Gender == "Female")
plot(Fml$Age~Fml$Sleep.Duration, pch = 19, col = "purple2")
abline(lm(Fml$Age ~ Fml$Sleep.Duration), col = "orange2", lwd = 3)

Ml <- Sleep %>% filter(Sleep$Gender == "Male")
plot(Ml$Age~Ml$Sleep.Duration, pch = 19, col = "pink2")
abline(lm(Ml$Age ~ Ml$Sleep.Duration), col = "yellow2", lwd = 3)

Interpretasi

Perempuan (Female)

Hasil plot antara usia perempuan dengan sleep duration menunjukkan hubungan yang positif di antara kedua peubah tersebut. Semakin tinggi usia perempuan, semakin banyak durasi tidur yang dimiliki.

Laki-laki (Male)

Hasil plot antara usia laki-laki dengan sleep duration menunjukkan hubungan positif di antara kedua peubah tersebut. Semakin tinggi usia laki-laki, semakin banyak durasi tidur yang dimiliki. Tetapi, jika dilihat pada garis kuning, hubungan kedua peubah tersebut tidak begitu kuat.

2. Hubungan Sleep Duration dengan Quality of Sleep, Physical Activity Level, Stress Level, Heart Rate.

library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.2
## corrplot 0.92 loaded
library(RColorBrewer)
J <- data.frame(Sleep$Sleep.Duration, Sleep$Quality.of.Sleep, Sleep$Physical.Activity.Level, Sleep$Stress.Level, Sleep$Heart.Rate)
K <- cor(J)
corrplot(K, order = 'AOE', type = 'upper', tl.pos = 'd')
corrplot(K, add = TRUE, type = 'lower', method = 'number', order = 'AOE',
         diag = FALSE, tl.pos = 'n', cl.pos = 'n')

Interpretasi

Hasil plot korelasi di atas menunjukkan terdapat satu peubah yang tidak berhubungan signifikan terhadap sleep duration, yaitu physical activity level. Peubah yang memiliki hubungan signifikan positif adalah quality of sleep, dengan nilai korelasi sebesar 0.88. Artinya semakin besar durasi tidur yang dimiliki, kualitas tidur yang dimiliki pun semakin bagus.Peubah yang memiliki hubungan signifikan negatif adalah stress level dengan nilai korelasi sebesar -0.9 dan heart rate dengan nilai korelasi sebesar -0.66. Artinya semakin banyak durasi waktu yang dimiliki, level stres dan denyut jantung per menit akan semakin berkurang.

Visualisasi untuk Time Series

Perbandingan Saham Penutupan YG dan SM pada 5 Tahun Terakhir dalam Mingguan

library(readr); library(dplyr)
YG <- read_csv("E:/SMT 4/Visdat/P8/122870.KQ.csv")
## Rows: 263 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl  (6): Open, High, Low, Close, Adj Close, Volume
## date (1): Date
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
YG1 <- YG %>% select(Date, `Adj Close`)
SM <- read_csv("E:/SMT 4/Visdat/P8/041510.KQ.csv")
## Rows: 263 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## dbl  (6): Open, High, Low, Close, Adj Close, Volume
## date (1): Date
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
SM1 <- SM %>% select(Date, `Adj Close`)
gabung <- data.frame(YG1, SM1)
library(ggplot2)
ggplot(data = gabung, mapping = aes(x=Date)) +
  geom_line(aes(y=`Adj.Close`, color = "YG")) +
  geom_line(aes(y=`Adj.Close.1`, color = "SM"))+
  theme_linedraw()

Interpretasi

Trend harga penutupan saham yang dimiliki SM Entertainment dan YG Entertainment tidak jauh berbeda secara fluktuatifnya. Perbedaan yang mencolok terdapat pada pertengahan 2020 hingga pertengahan 2021 dimana harga penutupan saham YG Entertainment lebih besar. Sedangkan perbedaan lainnya yang juga mencolok terdapat pada pertengahan 2022 hingga saat ini dimana harga penutupan saham SM Entertainment yang lebih besar dibandingkan YG Entertainment.

Visualisasi Spasial

Peta populasi dunia pada tahun 2023

library(ggplot2)            
library(tidyverse)
library(readr)
hwr <- read_csv("D:/WorldPopulation2023.csv")
hwr1 <- hwr[,c("region", "Population2023")]
library(ggplot2)            
library(tidyverse)
library(mapdata)
## Warning: package 'mapdata' was built under R version 4.3.3
## Loading required package: maps
## Warning: package 'maps' was built under R version 4.3.3
## 
## Attaching package: 'maps'
## The following object is masked from 'package:purrr':
## 
##     map
dataworld <- map_data("world")
datajj <- left_join(dataworld, hwr1, by = "region")
datakk <- datajj %>% filter(!is.na(datajj$Population2023))
library(ggplot2)
ggplot(datakk, aes( x = long, y = lat, group=group)) +
  geom_polygon(aes(fill = Population2023), color = "black")+ 
  scale_fill_gradient(name = "Population2023", low = "green3", high =  "purple", na.value = "pink")+
  theme(axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        rect = element_blank())

Interpretasi

Negara pada peta di atas yang memilikki warna hijau artinya populasinya berjumalah sekitar 500.000.000 orang. Sedangkan, negara yang memiliki warna ungu artinya populasinya berjumlah sekitar 1.000.000.000. Pada peta di atas, negara dengan populasi terbanyak adalah Cina.