Buatlah sebuah histogram dengan label yang sesuai untuk nilai (value) dari orders yang diterima dari negara-negara Nordic (Denmark, Finland, Norway, Sweden)! Berikan penjelasan dari koneksi dan pengambilan data sampai diperoleh visualisasinya!
library(DBI)
## Warning: package 'DBI' was built under R version 4.5.2
library(odbc)
## Warning: package 'odbc' was built under R version 4.5.2
con <- DBI::dbConnect(odbc::odbc(),
Driver = "MySQL ODBC 8.0 ANSI Driver",
Server = "127.0.0.1",
Database = "classicmodels",
UID = "root",
PWD = "chal10nsha",
Port = 3306)
Setelah koneksi terjalin, maka dapat dilanjutkan pengambilan data dari akan dataset yang digunakan. Disini karena akan membuat histogram untuk nilai dari orders dari beberapa negara maka dilakukan pengambilan data sebagai berikut.
dt1<-dbGetQuery(con,"SELECT
o.orderNumber,
c.country,
SUM(od.quantityOrdered * od.priceEach) AS total_value
FROM orders o
JOIN orderdetails od ON o.orderNumber= od.orderNumber
JOIN customers c ON o.customerNumber=c.customerNumber
WHERE c.country IN ('Denmark', 'Finland', 'Norway','Sweden')
GROUP BY o.orderNumber")
dt1
## orderNumber country total_value
## 1 10103 Norway 50218.95
## 2 10105 Denmark 53959.21
## 3 10112 Sweden 7674.94
## 4 10141 Finland 29716.86
## 5 10151 Finland 32723.04
## 6 10155 Finland 37602.48
## 7 10158 Norway 1491.38
## 8 10161 Denmark 36164.46
## 9 10167 Sweden 44167.09
## 10 10181 Norway 55069.55
## 11 10188 Norway 29954.91
## 12 10238 Denmark 28211.70
## 13 10239 Finland 16212.59
## 14 10247 Finland 28394.54
## 15 10256 Denmark 4710.73
## 16 10284 Norway 32260.16
## 17 10289 Norway 12538.01
## 18 10291 Sweden 48809.90
## 19 10299 Finland 34341.08
## 20 10301 Norway 36798.88
## 21 10309 Norway 17876.32
## 22 10314 Denmark 53745.34
## 23 10320 Sweden 16799.03
## 24 10325 Norway 34638.14
## 25 10326 Sweden 19206.68
## 26 10327 Denmark 20564.86
## 27 10334 Sweden 23014.17
## 28 10363 Finland 45785.34
## 29 10373 Finland 46770.52
## 30 10377 Finland 23602.90
## 31 10389 Sweden 27966.54
## 32 10406 Denmark 21638.62
Setelah mendapatkan data yang diinginkan dilanjutkan membuat histogram dengan package ggplot dan fungsi geom_histogram untuk melihat distribusi frekuensi dari data total value
# Membuat histogram dengan label yang informatif menggunakan labs()
library(ggplot2)
library(scales)
ggplot(dt1, aes(x = total_value)) +
geom_histogram(aes(fill = after_stat(count)), bins = 15, color = "white") +
stat_bin(bins = 15, geom = "text", aes(label = after_stat(count)), vjust = -0.5, size = 3) +
scale_fill_gradient(low = "#132B43", high = "#56B1F7") +
scale_x_continuous(labels = label_dollar()) +
scale_y_continuous(expand = expansion(mult = c(0, 0.15))) +
theme_minimal() +
labs(title = "Distribusi Nilai Pesanan di Negara Nordic",
subtitle = "Negara: Denmark, Finland, Norway, Sweden",
x = "Nilai Pesanan (USD)",
y = "Frekuensi (Jumlah Order)") +
theme(legend.position = "none")
Berikut adalah histogram untuk nilai (value) dari orders yang diterima dari negara-negara Nordic (Denmark, Finland, Norway, Sweden)