“22:14:54, 02 - 03 - 2024”
install.packages("tidyverse", repos="https://cran.rstudio.com/")
## package 'tidyverse' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\Admin\AppData\Local\Temp\Rtmp8c8vZV\downloaded_packages
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── 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(scales)
##
## Attaching package: 'scales'
##
## The following object is masked from 'package:purrr':
##
## discard
##
## The following object is masked from 'package:readr':
##
## col_factor
a <- diamonds
Giải thích các câu lệnh
Install.packages(“tidyverse”): Dòng này sẽ cài đặt gói “tidyverse” vào trong môi trường R
library(tidyverse): Dòng này sẽ tải gói “tidyverse” vào bộ nhớ để sử dụng bất kỳ chức năng nào từ tidyverse
library(scales): Dòng này tải gói “scales” vào bộ nhớ làm việc. “Scales” là một gói trong “tidyverse” được sử dụng để tạo và tùy chỉnh các biểu đồ.
a <- diamonds: Dòng này tải dữ liệu diamonds từ gói dữ liệu mẫu trong tidyverse và gán vào obj a
Kết quả là: Tạo ra một obj a bao gồm 53940 obs. of 10 variables
is.data.frame(a)
## [1] TRUE
length(a)
## [1] 10
names(a)
## [1] "carat" "cut" "color" "clarity" "depth" "table" "price"
## [8] "x" "y" "z"
dim(a)
## [1] 53940 10
library(skimr)
skim(a)
Name | a |
Number of rows | 53940 |
Number of columns | 10 |
_______________________ | |
Column type frequency: | |
factor | 3 |
numeric | 7 |
________________________ | |
Group variables | None |
Variable type: factor
skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
---|---|---|---|---|---|
cut | 0 | 1 | TRUE | 5 | Ide: 21551, Pre: 13791, Ver: 12082, Goo: 4906 |
color | 0 | 1 | TRUE | 7 | G: 11292, E: 9797, F: 9542, H: 8304 |
clarity | 0 | 1 | TRUE | 8 | SI1: 13065, VS2: 12258, SI2: 9194, VS1: 8171 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
carat | 0 | 1 | 0.80 | 0.47 | 0.2 | 0.40 | 0.70 | 1.04 | 5.01 | ▇▂▁▁▁ |
depth | 0 | 1 | 61.75 | 1.43 | 43.0 | 61.00 | 61.80 | 62.50 | 79.00 | ▁▁▇▁▁ |
table | 0 | 1 | 57.46 | 2.23 | 43.0 | 56.00 | 57.00 | 59.00 | 95.00 | ▁▇▁▁▁ |
price | 0 | 1 | 3932.80 | 3989.44 | 326.0 | 950.00 | 2401.00 | 5324.25 | 18823.00 | ▇▂▁▁▁ |
x | 0 | 1 | 5.73 | 1.12 | 0.0 | 4.71 | 5.70 | 6.54 | 10.74 | ▁▁▇▃▁ |
y | 0 | 1 | 5.73 | 1.14 | 0.0 | 4.72 | 5.71 | 6.54 | 58.90 | ▇▁▁▁▁ |
z | 0 | 1 | 3.54 | 0.71 | 0.0 | 2.91 | 3.53 | 4.04 | 31.80 | ▇▁▁▁▁ |
Số lượng: 53.940 viên kim cương
Biến: 10 đặc tính
Price: Giá thành của các viên kim cương (USD)
Carat: Trọng lượng của các viên kim cương (carat)
Cut: Chất lượng cắt (Khá, Tốt, Rất tốt, Đặc biệt, Lý tưởng) hay gọi là loại kim cương
Color: Các Màu của viên Kim cương (J - kém nhất, D - tốt nhất)
Clarity: Độ trong (I1 - kém nhất, IF - tốt nhất) hay gọi là Mức độ tinh khiết của viên kim cương
x: Chiều dài (mm)
y: Chiều rộng (mm)
z: Độ sâu (mm)
Depth: Độ sâu vết cắt
Table: Chiều rộng đỉnh kim cương so với điểm rộng nhất
Đồ thị thể hiện mối quan hệ giữa chất lượng cắt của viên kim cương (cut) và số lượng các viên kim cương
a %>% ggplot(aes(x = cut)) +
geom_bar() +
labs(x = 'Loại', y = 'Số lượng')
Giải Thích Câu Lệnh:
a %>% ggplot(aes(x = cut)): Dòng này sử dụng toán tử %>% từ gói dplyr để chuyển đổi dữ liệu trong a thành một luồng dữ liệu và đưa vào ggplot2. Trong hàm ggplot(), aes(x = cut) thiết lập một mối quan hệ giữa dữ liệu và các tham số trên trục x, trong trường hợp này là cut, là một biến trong diamonds chứa thông tin về các loại kim cương.
Hàm geom_bar() được sử dụng để tạo ra các cột dựa trên số lần xuất hiện của mỗi giá trị của biến cut
labs(x = ‘Loại’, y = ‘Số lượng’): Dòng này sử dụng hàm labs() để đặt tên cho trục x và trục y của biểu đồ. Trong trường hợp này, trục x được gán nhãn là “Loại” và trục y được gán nhãn là “Số lượng”
Kết Quả:
Tạo ra một biểu đồ gồm 5 cột, trục hoành(x) ứng với các loại mức độ của kim cương lần lượt là: Fair, Good, Very Good, Premium, Ideal, trục tung(y) số lượng của các viên kim cương đó.
Theo biểu đồ ta thấy có ít nhất là số viên Kim Cương thuộc loại Fair có khoảng ít hơn 2500 viên và nhiều nhất là số viên Kim Cương thuộc loại Ideal có khoảng hơn 20000 viên
Đồ thị thể hiện mối quan hệ giữa màu sắc của viên kim cương (color) và số lượng các viên kim cương
a %>% ggplot(aes(x = color)) +
geom_bar() +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh:
a %>% ggplot(aes(x = color)): Dòng này sử dụng toán tử %>% từ gói dplyr để chuyển đổi dữ liệu trong a thành một luồng dữ liệu và đưa vào ggplot2. Trong hàm ggplot(), aes(x = color) thiết lập một mối quan hệ giữa dữ liệu và các tham số trên trục x, trong trường hợp này là color, là một biến trong diamonds chứa thông tin về các màu sắc của kim cương.
Hàm geom_bar() được sử dụng để tạo ra các cột dựa trên số lần xuất hiện của mỗi giá trị của biến color
labs(x = ‘Màu’, y = ‘Số lượng’): Dòng này sử dụng hàm labs() để đặt tên cho trục x và trục y của biểu đồ. Trong trường hợp này, trục x được gán nhãn là “Màu” và trục y được gán nhãn là “Số lượng”
Kết Quả:
Tạo ra một biểu đồ gồm 7 cột, trục hoành(x) ứng với các loại màu của kim cương lần lượt là: D,E,F,G,H,I,J, trục tung(y) số lượng của các viên kim cương ứng với các màu đó.
Theo biểu đồ ta thấy là màu J có số lượng viên kim cương ít nhất khoảng ít hơn 3000 viên và màu G có số lượng viên Kim cương nhiều nhất nằm trong khoảng hơn 9000 viên
Đồ thị thể hiện mối quan hệ giữa độ trong của viên kim cương (clarity) và số lượng các viên kim cương
a %>% ggplot(aes(x = clarity)) +
geom_bar() +
labs(x = 'Mức độ tinh khiết', y = 'Số lượng')
Giải Thích Câu Lệnh:
a %>% ggplot(aes(x = clarity)): Dòng này sử dụng toán tử %>% từ gói dplyr để chuyển đổi dữ liệu trong a thành một luồng dữ liệu và đưa vào ggplot2. Trong hàm ggplot(), aes(x = clarity) thiết lập một mối quan hệ giữa dữ liệu và các tham số trên trục x, trong trường hợp này là clarity, là một biến trong diamonds chứa thông tin về mức độ tinh khiết của kim cương.
Hàm geom_bar() được sử dụng để tạo ra các cột dựa trên số lần xuất hiện của mỗi giá trị của biến clarity
labs(x = ‘Mức độ tinh khiết’, y = ‘Số lượng’): Dòng này sử dụng hàm labs() để đặt tên cho trục x và trục y của biểu đồ. Trong trường hợp này, trục x được gán nhãn là “Mức độ tinh khiết” và trục y được gán nhãn là “Số lượng”
Kết Quả:
Tạo ra một biểu đồ gồm 8 cột, trục hoành(x) ứng với Mức độ tinh khiết của kim cương lần lượt là: I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF, trục tung(y) số lượng của các viên kim cương.
Theo biểu đồ ta thấy các viên kim cương có mức độ tinh khiết là mã I1 là ít nhất khoảng ít hơn 1250 viên và các viên kim cương có mã SI1 có số lượng nhiều nhất chiếm khoảng hơn 12500 viên
Đồ thị thể hiện mối quan hệ giữa chất lượng cắt của viên kim cương (cut) và số lượng các viên kim cương(chú thích số lượng)
a %>% group_by(cut) %>% summarise(n = n()) %>%
ggplot(aes(cut,n)) +
geom_col(fill='red') +
geom_text(aes(label = n),vjust = 2, color = 'black') +
labs(x = 'Loại', y = 'Số lượng')
Giải thích câu lệnh
a %>% group_by(cut) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến cut, sau đó tính tổng số lượng các mẫu trong mỗi nhóm.
ggplot(aes(cut,n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và số lượng trên trục y.
geom_col(fill=‘red’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền đỏ.
geom_text(aes(label = n),vjust = 2, color = ‘black’): Thêm các nhãn số lượng lên trên các cột. Các nhãn này được lấy từ giá trị của biến n và được căn chỉnh dọc (vjust = 2) và màu chữ là đen (color = ‘black’).
labs(x = ‘Loại’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Loại” và trục y là “Số lượng”.
Kết Quả: Tạo ra một biểu đồ gồm 5 cột màu đỏ, trục hoành(x) ứng với các loại mức độ của kim cương lần lượt là: Fair, Good, Very Good, Premium, Ideal, trục tung(y) là số lượng của các viên kim cương đó.
Loại Fair gồm có 1610 viên kim cương
Loại Good gồm có 4906 viên kim cương
Loại Very Good gồm có 12082 viên kim cương
Loại Premium gồm có 13791 viên kim cương
Loại Ideal gồm có 21551 viên kim cương
Đồ thị thể hiện mối quan hệ giữa màu sắc của viên kim cương (color) và số lượng các viên kim cương(chú thích số lượng)
a %>% group_by(color) %>% summarise(n = n()) %>%
ggplot(aes(color,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = 2, color = 'red') +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh
a %>% group_by(color) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến color, sau đó tính tổng số lượng các mẫu trong mỗi nhóm.
ggplot(aes(color,n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và số lượng trên trục y.
geom_col(fill=‘green’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền xanh lá cây.
geom_text(aes(label = n),vjust = 2, color = ‘red’): Thêm các nhãn số lượng lên trên các cột. Các nhãn này được lấy từ giá trị của biến n và được căn chỉnh dọc (vjust = 2) và màu chữ là đỏ (color = ‘red’).
labs(x = ‘Màu’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Màu” và trục y là “Số lượng”.
Kết Quả: Tạo ra một biểu đồ gồm 7 cột màu xanh lá, trục hoành(x) ứng với các loại màu của kim cương lần lượt là: D,E,F,G,H,I,J, trục tung(y) số lượng của các viên kim cương ứng với các màu đó.
Màu D gồm có 6775 viên kim cương
Màu E gồm có 9797 viên kim cương
Màu F gồm có 9542 viên kim cương
Màu G gồm có 11292 viên kim cương
Màu H gồm có 8304 viên kim cương
Màu I gồm có 5422 viên kim cương
Màu J gồm có 2808 viên kim cương
Đồ thị thể hiện mối quan hệ giữa độ trong của viên kim cương (clarity) và số lượng các viên kim cương(chú thích số lượng)
a %>% group_by(clarity) %>% summarise(n = n()) %>%
ggplot(aes(clarity,n)) +
geom_col(fill='yellow') +
geom_text(aes(label = n),vjust = 1, color = 'red') +
labs(x = 'Mức độ tinh khiết', y = 'Số lượng')
Giải thích câu lệnh
a %>% group_by(clarity) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến clarity, sau đó tính tổng số lượng các mẫu trong mỗi nhóm.
ggplot(aes(clarity,n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và số lượng trên trục y.
geom_col(fill=‘yellow’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền vàng.
geom_text(aes(label = n),vjust = 1, color = ‘red’): Thêm các nhãn số lượng lên trên các cột. Các nhãn này được lấy từ giá trị của biến n và được căn chỉnh dọc (vjust = 1) và màu chữ là đổ (color = ‘red’).
labs(x = ‘Mức độ tinh khiết’, y = ‘Số lượng’) Đặt nhãn cho trục x là “Mức độ tinh khiết” và trục y là “Số lượng”.
Kết Quả: Tạo ra một biểu đồ gồm 8 cột màu vàng, trục hoành(x) ứng với Mức độ tinh khiết của kim cương lần lượt là: I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF, trục tung(y) là số lượng của các viên kim cương.
Đồ thị thể hiện mối quan hệ giữa chất lượng cắt của viên kim cương (cut) và số lượng các viên kim cương đồng thời thể hiện tỷ lệ phần trăm của các viên kim cương trên tổng số viên kim cương
a %>% group_by(cut) %>% summarise(n = n()) %>%
ggplot(aes(cut,n)) +
geom_col(fill='green') +
geom_text(aes(label = scales::percent(n/length(a$carat))),vjust = 1, color = 'red') +
labs(x = 'Loại', y = 'Số lượng')
Giải thích câu lệnh:
a %>% group_by(cut) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến cut, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(cut,n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và số lượng trên trục y.
geom_col(fill=‘green’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền là màu xanh lá cây.
geom_text(aes(label = scales::percent(n/length(a$carat))),vjust = 1, color = ‘red’)
Gắn số liệu lên trên đỉnh của mỗi cột. Các nhãn này là tỉ lệ phần trăm của số lượng mẫu(n) trong mỗi nhóm so với tổng số lượng mẫu trong cột carat của khung dữ liệu a (được tính bằng n/length(a$carat)). Các nhãn được căn chỉnh dọc (vjust = 1) và được định dạng màu đỏ.
Kết quả là: Tạo ra một biểu đồ gồm 5 cột màu xanh lá, trục hoành(x) ứng với các loại mức độ của kim cương lần lượt là: Fair, Good, Very Good, Premium, Ideal, trục tung(y) là số lượng của các viên kim cương đó. Giá trị trên mỗi cột dữ liệu tương ứng là phần trăm của loại kim cương đó trên tổng số các viên kim cương (tổng chiều dài của cột carat)
Phần trăm của kim cương thuộc loại Fair so với tổng số kim cương là 3%
Phần trăm của kim cương thuộc loại Good so với tổng số kim cương là 9.1%
Phần trăm của kim cương thuộc loại Very Good so với tổng số kim cương là 22.4%
Phần trăm của kim cương thuộc loại Premium so với tổng số kim cương là 25.6%
Phần trăm của kim cương thuộc loại Ideal so với tổng số kim cương là 40.0%
Đồ thị thể hiện mối quan hệ giữa màu sắc của viên kim cương (color) và số lượng các viên kim cương đồng thời thể hiện tỷ lệ phần trăm của các viên kim cương trên tổng số viên kim cương
a %>% group_by(color) %>% summarise(n = n()) %>%
ggplot(aes(color,n)) +
geom_col(fill='black') +
geom_text(aes(label = scales::percent(n/length(a$depth))),vjust = 1, color = 'white') +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh:
a %>% group_by(color) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến color, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(color,n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và số lượng trên trục y.
geom_col(fill=‘black’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền là màu đen.
geom_text(aes(label = scales::percent(n/length(a$depth))),vjust = 1, color = ‘white’):
Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này là tỉ lệ phần trăm của số lượng mẫu trong mỗi nhóm so với tổng số lượng mẫu (được tính bằng n/length(a$depth)). Các nhãn được căn chỉnh dọc (vjust = 1) và được định dạng màu trắng.
Kết Quả: Tạo ra một biểu đồ gồm 7 cột màu đen, trục hoành(x) ứng với các loại màu của kim cương lần lượt là: D,E,F,G,H,I,J, trục tung(y) số lượng của các viên kim cương ứng với các màu đó. Giá trị trên mỗi cột dữ liệu tương ứng là phần trăm của màu kim cương đó trên tổng số các viên kim cương (tổng chiều dài của cột depth)
Đồ thị thể hiện mối quan hệ giữa độ trong của viên kim cương (clarity) và số lượng các viên kim cương đồng thời thể hiện tỷ lệ phần trăm của các viên kim cương trên tổng số viên kim cương
a %>% group_by(clarity) %>% summarise(n = n()) %>%
ggplot(aes(clarity,n)) +
geom_col(fill='violet') +
geom_text(aes(label = scales::percent(n/length(a$price))),vjust = 1, color = 'black') +
labs(x = 'Mức độ tinh khiết', y = 'Số lượng')
Giải thích câu lệnh:
a %>% group_by(clarity) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến clarity, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(clarity,n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và số lượng trên trục y.
geom_col(fill=‘violet’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền là màu tím.
geom_text(aes(label = scales::percent(n/length(a$price))),vjust = 1, color = ‘black’):
Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này là tỉ lệ phần trăm của số lượng mẫu trong mỗi nhóm so với tổng số lượng mẫu (được tính bằng n/length(a$price)). Các nhãn được căn chỉnh dọc (vjust = 1) và được định dạng màu đen.
Kết Quả: Tạo ra một biểu đồ gồm 8 cột màu tím, trục hoành(x) ứng với Mức độ tinh khiết của kim cương lần lượt là:I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF . Giá trị trên mỗi cột dữ liệu tương ứng là phần trăm của mã mức độ tinh khiết của kim cương đó trên tổng số các viên kim cương (tổng chiều dài của cột price)
Biểu đồ cột kép theo mặt cắt (cut) phân tách theo màu sắc (color)
a %>% group_by(cut,color) %>% summarise(n=n()) %>%
ggplot(aes(x = cut,y = n)) +
geom_col(position = 'dodge') +
facet_wrap(~color) +
geom_text(aes(label = n),vjust = 1, color = 'green') +
labs(x = 'Loại', y = 'Số lượng')
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
Giải thích câu lệnh :
a %>% group_by(cut, color) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến cut và color, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(x = cut, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và số lượng trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ. Với tham số position = ‘dodge’, các cột được vẽ cách xa nhau, mỗi nhóm cột tương ứng với một giá trị của biến color.
facet_wrap(~color): Chia biểu đồ thành nhiều “panes” (phần nhỏ) dựa trên giá trị của biến color, tức là tạo ra nhiều biểu đồ con, mỗi biểu đồ con cho một giá trị riêng của biến color.
geom_text(aes(label = n), vjust = 1, color = ‘green’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này được lấy từ biến n và được căn chỉnh dọc (vjust = 1) và định dạng màu chữ là màu xanh lá cây.
labs(x = ‘Loại’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Loại” và trục y là “Số lượng”.
Kết quả:
Tạo ra 7 biểu đồ cột ứng với 7 màu sắc D,E,F,G,H,I,G. Trong mỗi biểu đồ trục hoành ứng(x) với các loại kim cương là Fair, Good, Very Good,Premium, Ideal và trục tung là số lượng các viên Kim cương
Biểu đồ D ứng với màu D có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ E ứng với màu E có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ F ứng với màu F có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ G ứng với màu G có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ H ứng với màu H có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ I ứng với màu I có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ G ứng với màu G có số lượng viên kim cương chiếm đa số ở loại Ideal
Biểu đồ cột kép theo mặt cắt (cut) phân tách theo độ trong(clarity)
a %>% group_by(cut,clarity) %>% summarise(n=n()) %>%
ggplot(aes(x = cut,y = n)) +
geom_col(position = 'dodge') +
facet_wrap(~clarity) +
geom_text(aes(label = n),vjust = 1, color = 'red') +
labs(x = 'Loại', y = 'Số lượng')
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
Giải thích câu lệnh :
a %>% group_by(cut, clarity) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến cut và clarity, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(x = cut, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và số lượng trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ. Với tham số position = ‘dodge’, các cột được vẽ cách xa nhau, mỗi nhóm cột tương ứng với một giá trị của biến clarity.
facet_wrap(~clarity): Chia biểu đồ thành nhiều “panes” (phần nhỏ) dựa trên giá trị của biến clarity, tức là tạo ra nhiều biểu đồ con, mỗi biểu đồ con cho một giá trị riêng của biến clarity.
geom_text(aes(label = n), vjust = 1, color = ‘red’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này được lấy từ biến n và được căn chỉnh dọc (vjust = 1) và định dạng màu chữ là màu đỏ.
labs(x = ‘Loại’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Loại” và trục y là “Số lượng”.
Kết quả:
Biểu đồ cột kép theo màu sắc (color) và phân tách theo độ trong (clarity)
a %>% group_by(color,clarity) %>% summarise(n=n()) %>%
ggplot(aes(x = color,y = n)) +
geom_col(position = 'dodge') +
facet_wrap(~clarity) +
geom_text(aes(label = n),vjust = 1, color = 'white') +
labs(x = 'Màu', y = 'Số lượng')
## `summarise()` has grouped output by 'color'. You can override using the
## `.groups` argument.
Giải thích câu lệnh :
a %>% group_by(color, clarity) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến color và clarity, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(x = color, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và số lượng trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ. Với tham số position = ‘dodge’, các cột được vẽ cách xa nhau, mỗi nhóm cột tương ứng với một giá trị của biến clarity.
facet_wrap(~clarity): Chia biểu đồ thành nhiều “panes” (phần nhỏ) dựa trên giá trị của biến clarity, tức là tạo ra nhiều biểu đồ con, mỗi biểu đồ con cho một giá trị riêng của biến clarity.
geom_text(aes(label = n), vjust = 1, color = ‘white’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này được lấy từ biến n và được căn chỉnh dọc (vjust = 1) và định dạng màu chữ là màu trắng.
labs(x = ‘Màu’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Màu” và trục y là “Số lượng”.
Kết quả: Tạo ra 8 biểu đồ cột ứng với 8 mức độ tinh khiết I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF . Trong mỗi biểu đồ trục hoành ứng(x) với các màu kim cương là D,E,F,G,H,I,G và trục tung là số lượng các viên Kim cương
Biểu đồ cột kép theo theo độ trong (clarity) và phân tách theo màu sắc (color)
a %>% group_by(color,clarity) %>% summarise(n=n()) %>%
ggplot(aes(x = clarity,y = n)) +
geom_col(position = 'dodge') +
facet_wrap(~color) +
geom_text(aes(label = n),vjust = 1, color = 'black') +
labs(x = 'Mức độ tinh khiết', y = 'Số lượng')
## `summarise()` has grouped output by 'color'. You can override using the
## `.groups` argument.
Giải thích câu lệnh :
a %>% group_by(color, clarity) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến color và clarity, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(x = clarity, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và số lượng trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ. Với tham số position = ‘dodge’, các cột được vẽ cách xa nhau, mỗi nhóm cột tương ứng với một giá trị của biến color.
facet_wrap(~color): Chia biểu đồ thành nhiều “panes” (phần nhỏ) dựa trên giá trị của biến color, tức là tạo ra nhiều biểu đồ con, mỗi biểu đồ con cho một giá trị riêng của biến color.
geom_text(aes(label = n), vjust = 1, color = ‘black’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này được lấy từ biến n và được căn chỉnh dọc (vjust = 1) và định dạng màu chữ là màu đen.
labs(x = ‘Mức độ tinh khiết’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Mức độ tinh khiết” và trục y là “Số lượng”.
Kết quả: Tạo ra 7 biểu đồ cột ứng với 7 màu kim cương là D,E,F,G,H,I,G. Trong mỗi biểu đồ trục hoành(x) ứng với mức độ tinh khiết của kim cương I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF và trục tung là số lượng các viên Kim cương
Biểu đồ cột kép theo màu sắc (color) và phân tách theo mặt cắt (cut)
a %>% group_by(cut,color) %>% summarise(n=n()) %>%
ggplot(aes(x = color,y = n)) +
geom_col(position = 'dodge') +
facet_wrap(~cut) +
geom_text(aes(label = n),vjust = 1, color = 'violet') +
labs(x = 'Màu', y = 'Số lượng')
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
Giải thích câu lệnh :
a %>% group_by(cut, color) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến cut và color, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(x = color, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và số lượng trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ. Với tham số position = ‘dodge’, các cột được vẽ cách xa nhau, mỗi nhóm cột tương ứng với một giá trị của biến cut.
facet_wrap(~cut): Chia biểu đồ thành nhiều “panes” (phần nhỏ) dựa trên giá trị của biến color, tức là tạo ra nhiều biểu đồ con, mỗi biểu đồ con cho một giá trị riêng của biến cut.
geom_text(aes(label = n), vjust = 1, color = ‘violet’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này được lấy từ biến n và được căn chỉnh dọc (vjust = 1) và định dạng màu chữ là màu tím.
labs(x = ‘Màu’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Màu” và trục y là “Số lượng”.
Kết quả: Tạo ra 5 biểu đồ cột ứng với 5 loại kim cương là Fair, Good, Very Good,Premium, Ideal . Trong mỗi biểu đồ trục hoành ứng(x) với màu sắc D,E,F,G,H,I,G và trục tung là số lượng các viên Kim cương
Biểu đồ cột kép theo theo độ trong (clarity) và phân tách theo mặt cắt (cut)
a %>% group_by(cut,clarity) %>% summarise(n=n()) %>%
ggplot(aes(x = clarity,y = n)) +
geom_col(position = 'dodge') +
facet_wrap(~cut) +
geom_text(aes(label = n),vjust = 1, color = 'red') +
labs(x = 'Loại', y = 'Số lượng')
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
Giải thích câu lệnh :
a %>% group_by(cut, clarity) %>% summarise(n = n()): Nhóm dữ liệu trong a theo giá trị của biến cut và clarity, sau đó tính tổng số lượng các mẫu trong mỗi nhóm và lưu vào biến n.
ggplot(aes(x = clarity, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và số lượng trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ. Với tham số position = ‘dodge’, các cột được vẽ cách xa nhau, mỗi nhóm cột tương ứng với một giá trị của biến cut.
facet_wrap(~cut): Chia biểu đồ thành nhiều “panes” (phần nhỏ) dựa trên giá trị của biến cut, tức là tạo ra nhiều biểu đồ con, mỗi biểu đồ con cho một giá trị riêng của biến cut.
geom_text(aes(label = n), vjust = 1, color = ‘red’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Các nhãn này được lấy từ biến n và được căn chỉnh dọc (vjust = 1) và định dạng màu chữ là màu đỏ.
labs(x = ‘Loại’, y = ‘Số lượng’): Đặt nhãn cho trục x là “Loại” và trục y là “Số lượng”.
Kết quả: Tạo ra 5 biểu đồ cột ứng với 5 loại kim cương là Fair, Good, Very Good,Premium, Ideal . Trong mỗi biểu đồ trục hoành ứng(x) với mức độ tinh khiết của kim cương I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF và trục tung là số lượng các viên Kim cương
Biểu đồ cột thể hiện trung bình trọng lượng carat theo chất lượng cắt (cut)
a %>% group_by(cut) %>% summarise(m= mean(carat)) %>%
ggplot(aes(x = cut,y = m)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'white') +
labs(x = 'Loại', y = 'Mean')
Giải thích câu lệnh :
a %>% group_by(cut) %>% summarise(m= mean(carat)): Nhóm dữ liệu trong a theo các giá trị của biến cut, sau đó tính trung bình (mean()) của trọng lượng kim cương (carat) trong mỗi nhóm và lưu vào biến m.
ggplot(aes(x = cut, y = m)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và giá trị trung bình (m) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến cut. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘white’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của trọng lượng kim cương được làm tròn với hai chữ số sau dấu thập phân (round(m,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu trắng để phản ánh trên nền cột.
labs(x = ‘Loại’, y = ‘Mean’): Đặt nhãn cho trục x là “Loại” và trục y là “Mean” (Trung bình).
Kết quả: Tạo ra biểu đồ gồm 5 cột, trục hoành (x) ứng với 5 loại kim cương là Fair, Good, Very Good,Premium, Ideal và trục tung (y) ứng với giá trị trung bình của độ lớn viên kim cương
Loại Fair có độ lớn của các viên kim cương trung bình là 1.05
Loại Good có độ lớn của các viên kim cương trung bình là 0.85
Loại Very Good có độ lớn của các viên kim cương trung bình là 0.81
Loại Premium có độ lớn của các viên kim cương trung bình là 0.89
Loại Ideal có độ lớn của các viên kim cương trung bình là 0.7
Biểu đồ cột thể hiện trung bình trọng lượng carat theo màu sắc (color)
a %>% group_by(color) %>% summarise(m= mean(carat)) %>%
ggplot(aes(x = color,y = m)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'red') +
labs(x = 'Màu', y = 'Mean')
Giải thích câu lệnh :
a %>% group_by(color) %>% summarise(m= mean(carat)): Nhóm dữ liệu trong a theo các giá trị của biến color, sau đó tính trung bình (mean()) của trọng lượng kim cương (carat) trong mỗi nhóm và lưu vào biến m.
ggplot(aes(x = color, y = m)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và giá trị trung bình (m) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến color. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘red’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của trọng lượng kim cương được làm tròn với hai chữ số sau dấu thập phân (round(m,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu đỏ để phản ánh trên nền cột.
labs(x = ‘Màu’, y = ‘Mean’): Đặt nhãn cho trục x là “Màu” và trục y là “Mean” (Trung bình).
Kết quả: Tạo ra biểu đồ gồm 7 cột, trục hoành (x) ứng với 7 màu sắc D,E,F,G,H,I,G và trục tung (y) ứng với giá trị trung bình của độ lớn viên kim cương
Biểu đồ cột thể hiện trung bình trọng lượng carat theo độ trong(clarity)
a %>% group_by(clarity) %>% summarise(m= mean(carat)) %>%
ggplot(aes(x = clarity,y = m)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'red') +
labs(x = 'Mức Độ Tinh Khiết', y = 'Mean')
Giải thích câu lệnh :
a %>% group_by(clarity) %>% summarise(m= mean(carat)): Nhóm dữ liệu trong a theo các giá trị của biến clarity, sau đó tính trung bình (mean()) của trọng lượng kim cương (carat) trong mỗi nhóm và lưu vào biến m.
ggplot(aes(x = clarity, y = m)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và giá trị trung bình (m) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến color. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘red’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của trọng lượng kim cương được làm tròn với hai chữ số sau dấu thập phân (round(m,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và màu chữ là màu đỏ để phản ánh trên nền cột.
labs(x = ‘Màu’, y = ‘Mean’): Đặt nhãn cho trục x là “Mức độ tinh khiết” và trục y là “Mean” (Trung bình).
Kết quả: Tạo ra biểu đồ gồm 8 cột, trục hoành (x) ứng với 8 mức độ tinh khiết của kim cương I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF và trục tung (y) ứng với giá trị trung bình của độ lớn viên kim cương
Mã I1 có độ lớn của các viên kim cương trung bình là 1.28
Mã SI1 có độ lớn của các viên kim cương trung bình là 1.08
Mã SI2 có độ lớn của các viên kim cương trung bình là 0.85
Mã VS2 có độ lớn của các viên kim cương trung bình là 0.76
Mã VS1 có độ lớn của các viên kim cương trung bình là 0.73
Mã VVS2 có độ lớn của các viên kim cương trung bình là 0.6
Mã VVS1 có độ lớn của các viên kim cương trung bình là 0.5
Mã IF có độ lớn của các viên kim cương trung bình là 0.51
Biểu đồ cột thể hiện trung bình giá thành theo chất lượng cắt (cut)
a %>% group_by(cut) %>% summarise(mp= mean(price)) %>%
ggplot(aes(x = cut,y = mp)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(mp,2)), vjust = 2, color = 'white') +
labs(x = 'Loại', y = 'Mean Price')
Giải thích câu lệnh :
a %>% group_by(cut) %>% summarise(mp= mean(price)): Nhóm dữ liệu trong a theo các giá trị của biến cut, sau đó tính trung bình (mean()) của giá kim cương (price) trong mỗi nhóm và lưu vào biến mp.
ggplot(aes(x = cut, y = mp)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và giá trị trung bình (mp) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến cut. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(mp,2)), vjust = 2, color = ‘white’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của giá kim cương được làm tròn với hai chữ số sau dấu thập phân (round(mp,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu trắng để phản ánh trên nền cột.
labs(x = ‘Loại’, y = ‘Mean Price’): Đặt nhãn cho trục x là “Loại” và trục y là “Mean Price” (Giá Trung bình).
Kết quả: Tạo ra biểu đồ gồm 5 cột, trục hoành (x) ứng với 5 loại kim cương là Fair, Good, Very Good,Premium, Ideal và trục tung (y) ứng với giá trung bình của các viên kim cương thuộc loại đó
Loại Fair có mức giá trung bình là 4358.76
Loại Good có mức giá trung bình là 3829.86
Loại Very Good có mức giá trung bình là 3981.76
Loại Premium có mức giá trung bình là 4584.76
Loại Ideal có mức giá trung bình là 3457.54
Biểu đồ cột thể hiện trung bình giá thành theo màu sắc (color)
a %>% group_by(color) %>% summarise(mp= mean(price)) %>%
ggplot(aes(x = color,y = mp)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(mp,2)), vjust = 2, color = 'red') +
labs(x = 'Màu', y = 'Mean Price')
Giải thích câu lệnh :
a %>% group_by(color) %>% summarise(mp= mean(price)): Nhóm dữ liệu trong a theo các giá trị của biến color, sau đó tính trung bình (mean()) của giá kim cương (price) trong mỗi nhóm và lưu vào biến mp.
ggplot(aes(x = color, y = mp)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và giá trị trung bình (mp) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến color. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(mp,2)), vjust = 2, color = ‘red’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của giá kim cương được làm tròn với hai chữ số sau dấu thập phân (round(mp,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và màu chữ là màu đỏ để phản ánh trên nền cột.
labs(x = ‘Màu’, y = ‘Mean Price’): Đặt nhãn cho trục x là “Màu” và trục y là “Mean Price” (Giá Trung bình).
Kết quả: Tạo ra biểu đồ gồm 7 cột, trục hoành (x) ứng với 7 màu sắc D,E,F,G,H,I,G và trục tung (y) ứng với giá trung bình của các viên kim cương thuộc màu đó
Màu D có mức giá trung bình là 3169.95
Màu E có mức giá trung bình là 3076.75
Màu F có mức giá trung bình là 3724.89
Màu G có mức giá trung bình là 3999.14
Màu H có mức giá trung bình là 4486.67
Màu I có mức giá trung bình là 5091.87
Màu G có mức giá trung bình là 5323.82
Biểu đồ cột thể hiện trung bình giá thành theo độ trong (clarity)
a %>% group_by(clarity) %>% summarise(mp= mean(price)) %>%
ggplot(aes(x = clarity,y = mp)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(mp,2)), vjust = 2, color = 'blue') +
labs(x = 'Mức Độ Tinh Khiết', y = 'Mean')
Giải thích câu lệnh :
a %>% group_by(clarity) %>% summarise(mp= mean(price)): Nhóm dữ liệu trong a theo các giá trị của biến clarity, sau đó tính trung bình (mean()) của giá kim cương (price) trong mỗi nhóm và lưu vào biến mp.
ggplot(aes(x = clarrity, y = mp)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và giá trị trung bình (mp) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến clarity. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(mp,2)), vjust = 2, color = ‘blue’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của giá kim cương được làm tròn với hai chữ số sau dấu thập phân (round(mp,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu xanh dương để phản ánh trên nền cột.
labs(x = ‘Mức độ tinh khiết’, y = ‘Mean Price’): Đặt nhãn cho trục x là “Mức độ tinh khiết” và trục y là “Mean Price” (Giá Trung bình).
Kết quả: Tạo ra biểu đồ gồm 8 cột, trục hoành (x) ứng với 8 mức độ tinh khiết của kim cương I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF và trục tung (y) ứng với giá trung bình của từng mã kim cương
Mã I1 có mức giá trung bình là 3924.17
Mã SI1 có mức giá trung bình là 5063.03
Mã SI2 có mức giá trung bình là 3996
Mã VS2 có mức giá trung bình là 3924.99
Mã VS1 có mức giá trung bình là 3839.46
Mã VVS2 có mức giá trung bình là 3283.74
Mã VVS1 có mức giá trung bình là 2523.11
Mã IF có mức giá trung bình là 2864.84
Biểu đồ cột thể hiện trung bình độ sâu của vết cắt (depth) theo chất lượng cắt (cut)
a %>% group_by(cut) %>% summarise(md= mean(depth)) %>%
ggplot(aes(x = cut,y = md)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(md,2)), vjust = 2, color = 'white') +
labs(x = 'Loại', y = 'Mean Depth')
Giải thích câu lệnh:
a %>% group_by(cut) %>% summarise(md= mean(depth)): Nhóm dữ liệu trong a theo các giá trị của biến cut, sau đó tính trung bình (mean()) của chiều cao (depth) trong mỗi nhóm và lưu vào biến md.
ggplot(aes(x = cut, y = md)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và giá trị trung bình (md) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến cut. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(md,2)), vjust = 2, color = ‘white’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của chiều cao được làm tròn với hai chữ số sau dấu thập phân (round(md,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu trắng để phản ánh trên nền cột.
labs(x = ‘Loại’, y = ‘Mean Depth’): Đặt nhãn cho trục x là “Loại” và trục y là “Mean Depth” (Trung bình chiều cao).
Kết quả: Tạo ra biểu đồ gồm 5 cột, trục hoành (x) ứng với 5 loại kim cương là Fair, Good, Very Good,Premium, Ideal và trục tung (y) ứng với giá trị trung bình chiều cao (độ sâu của vết cắt) của viên kim cương
Biểu đồ cột thể hiện trung bình độ sâu của vết cắt (depth) theo màu sắc (color)
a %>% group_by(color) %>% summarise(md= mean(depth)) %>%
ggplot(aes(x = color,y = md)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(md,2)), vjust = 2, color = 'red') +
labs(x = 'Màu', y = 'Mean Depth')
Giải thích câu lệnh:
a %>% group_by(color) %>% summarise(md= mean(depth)): Nhóm dữ liệu trong a theo các giá trị của biến color, sau đó tính trung bình (mean()) của chiều cao (depth) trong mỗi nhóm và lưu vào biến md.
ggplot(aes(x = color, y = md)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và giá trị trung bình (md) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến color. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(md,2)), vjust = 2, color = ‘red’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của chiều cao được làm tròn với hai chữ số sau dấu thập phân (round(md,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu đỏ để phản ánh trên nền cột.
labs(x = ‘Màu’, y = ‘Mean Depth’): Đặt nhãn cho trục x là “Màu” và trục y là “Mean Depth” (Trung bình chiều cao).
Kết quả: Tạo ra biểu đồ gồm 7 cột, trục hoành (x) ứng với 7 màu sắc D,E,F,G,H,I,G và trục tung (y) ứng với giá trung bình chiều cao của các viên kim cương
Biểu đồ cột thể hiện trung bình độ sâu của vết cắt (depth) theo độ trong(clarity)
a %>% group_by(clarity) %>% summarise(md= mean(depth)) %>%
ggplot(aes(x = clarity,y = md)) +
geom_col(position = 'dodge') +
geom_text(aes(label = round(md,2)), vjust = 2, color = 'blue') +
labs(x = 'Mức Độ Tinh Khiết', y = 'Mean Depth')
Giải thích câu lệnh:
a %>% group_by(clarity) %>% summarise(md= mean(depth)): Nhóm dữ liệu trong a theo các giá trị của biến clarity, sau đó tính trung bình (mean()) của chiều cao (depth) trong mỗi nhóm và lưu vào biến md.
ggplot(aes(x = clarity, y = md)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến clarity trên trục x và giá trị trung bình (md) trên trục y.
geom_col(position = ‘dodge’): Thêm một layer biểu đồ cột vào khung biểu đồ, với các cột được sắp xếp cạnh nhau theo giá trị của biến clarity. Tham số position = ‘dodge’ được sử dụng để sắp xếp các cột cạnh nhau.
geom_text(aes(label = round(md,2)), vjust = 2, color = ‘blue’): Thêm các nhãn số liệu lên trên đỉnh của mỗi cột. Giá trị của các nhãn là giá trị trung bình của chiều cao được làm tròn với hai chữ số sau dấu thập phân (round(md,2)). Các nhãn này được căn chỉnh dọc (vjust = 2) và được màu chữ là màu xanh dương để phản ánh trên nền cột.
labs(x = ‘Mức độ tinh khiết’, y = ‘Mean Depth’): Đặt nhãn cho trục x là “Mức độ tinh khiết” và trục y là “Mean Depth” (Trung bình chiều cao).
Kết quả: Tạo ra biểu đồ gồm 8 cột, trục hoành (x) ứng với 8 mức độ tinh khiết của kim cương I1,SI1,SI2,VS2,VS1,VVS2,VVS1,IF và trục tung (y) ứng với giá trị trung bình chiều cao (độ sâu của vết cắt) của kim cương
Đồ thị so sánh số lượng viên kim cương giữa 2 màu theo chất lượng cắt (cut)
a1 <- a %>% group_by(cut, color) %>% summarise(n = n())
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
a %>% ggplot(aes(x = cut, y = n)) +
geom_col(data = a1 %>% filter(color == 'I'), fill = 'black', position = 'dodge') +
geom_col(data = a1 %>% filter(color == 'J'), fill = 'red', position = 'dodge') +
labs(x = 'Loại', y = 'Số lượng')
Giải thích câu lệnh:
a1 <- a %>% group_by(cut, color) %>% summarise(n = n()): Tạo một bộ dữ liệu mới a1 bằng cách nhóm dữ liệu trong a theo các giá trị của biến cut và color, sau đó tính số lượng mẫu trong mỗi nhóm và lưu vào biến n.
a %>% ggplot(aes(x = cut, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến cut trên trục x và số lượng (n) trên trục y.
(data = a1 %>% filter(color == ‘I’), fill = ‘black’): Thêm một layer biểu đồ cột vào khung biểu đồ, với dữ liệu được lấy từ a1 sau khi lọc ra những dòng có giá trị của biến color là ‘I’. Các cột này sẽ được tô màu đen.
geom_col(data = a1 %>% filter(color == ‘J’), fill = ‘red’): Thêm một layer biểu đồ cột vào khung biểu đồ, với dữ liệu được lấy từ a1 sau khi lọc ra những dòng có giá trị của biến color là ‘J’. Các cột này sẽ được tô màu đỏ.
Kết quả: Tạo ra một biểu đồ gồm 5 cột gồm 2 loại màu sắc trong cùng một cột (màu đỏ ứng với các viên kim cương có màu sắc là I và màu đen ứng với những viên kim cương có màu sắc là J). Trục hoành (x) tương ứng là các loại kim cương gồm Fair, Good, Very Good, Premium, Ideal và trục tung (y) là số lượng của các viên kim cương đó
Đồ thị thể hiện mối quan hệ giữa trọng lượng và số lượng của các viên kim cương
a2 <- a %>% mutate(caratC = cut(carat,5, label = c('Rất Nhỏ', 'Nhỏ','Vừa','Lớn','Rất Lớn')))
a2 %>% ggplot(aes(x = caratC)) +
geom_bar(fill = 'red') +
labs(x = 'Trọng lương', y = 'Số Lượng')
Giải thích câu lệnh :
a2 <- a %>% mutate(caratC = cut(carat,5, label = c(‘rất nhỏ’, ‘nhỏ’,‘vừa’,‘lớn’,‘rất lớn’))): Tạo một bộ dữ liệu mới a2 từ bộ dữ liệu a. Trong bộ dữ liệu này, một biến mới được thêm vào là caratC. Biến này được tạo ra bằng cách chia biến carat thành 5 nhóm sử dụng hàm cut(). Nhãn của các nhóm được đặt lần lượt là ‘rất nhỏ’, ‘nhỏ’, ‘vừa’, ‘lớn’, ‘rất lớn’.
a2 %>% ggplot(aes(x = caratC)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến caratC trên trục x.
geom_bar(fill = ‘red’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền là màu đỏ. Mỗi cột trong biểu đồ này đại diện cho số lượng mẫu trong mỗi nhóm của biến caratC.
Kết quả:
Tạo ra một biểu đồ thể hiện mối quan hệ giữa trọng lượng các viên kim cương và số lượng của chúng gồm 5 cột màu đỏ. Trục hoành (x) là trọng lượng của các viên kim cương lần lượt là ‘rất nhỏ’, ‘nhỏ’, ‘vừa’, ‘lớn’, ‘rất lớn’. Trục tung(y) là số lượng của các viên kim cương ứng với trọng lượng đó.
Theo đồ thị ta thấy trọng lượng của các viên kim cương chiếm đa số (khoảng hơn 40000 viên) là Rất Nhỏ và giảm dần xuống khi đó trọng lượng của các viên kim cương Rất lớn là ít nhất
Đồ Thị thể hiện 4 đặc tính độ trong của các viên kim cương
a3 <- a %>% group_by(color, clarity) %>% summarise(n = n())
## `summarise()` has grouped output by 'color'. You can override using the
## `.groups` argument.
a %>% ggplot(aes(x = clarity, y = n)) +
geom_col(data = a3 %>% filter(clarity == 'VS1'), fill = 'blue') +
geom_col(data = a3 %>% filter(clarity == 'VS2'), fill = 'red') +
geom_col(data = a3 %>% filter(clarity == 'VVS2'), fill = 'green') +
geom_col(data = a3 %>% filter(clarity == 'VVS1'), fill = 'yellow') +
labs(x = 'Mức Độ Tinh Khiết', y = 'Số Lượng')
Giải thích dữ liệu:
a3 <- a %>% group_by(color, clarity) %>% summarise(n = n()): Tạo một bộ dữ liệu mới a3 bằng cách nhóm dữ liệu trong a theo các giá trị của biến color và clarity, sau đó tính số lượng mẫu trong mỗi nhóm và lưu vào biến n.
a %>% ggplot(aes(x = color, y = n)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến color trên trục x và số lượng (n) trên trục y.
geom_col(data = a3 %>% filter(clarity == ‘I1’), fill = ‘blue’): Thêm một layer biểu đồ cột vào khung biểu đồ, với dữ liệu được lấy từ a3 sau khi lọc ra những dòng có giá trị của biến clarity là ‘I1’. Các cột này sẽ được tô màu xanh lam.
geom_col(data = a3 %>% filter(clarity == ‘VS2’), fill = ‘red’): Thêm một layer biểu đồ cột vào khung biểu đồ, với dữ liệu được lấy từ a3 sau khi lọc ra những dòng có giá trị của biến clarity là ‘VS2’. Các cột này sẽ được tô màu đỏ.
geom_col(data = a3 %>% filter(clarity == ‘VVS2’), fill = ‘green’) Thêm một layer biểu đồ cột vào khung biểu đồ, với dữ liệu được lấy từ a3 sau khi lọc ra những dòng có giá trị của biến clarity là ‘VVS1’. Các cột này sẽ được tô màu xanh lá
geom_col(data = a3 %>% filter(clarity == ‘VVS1’), fill = ‘yellow’) Thêm một layer biểu đồ cột vào khung biểu đồ, với dữ liệu được lấy từ a3 sau khi lọc ra những dòng có giá trị của biến clarity là ‘VVS2’. Các cột này sẽ được tô màu vàng
Kết quả:
Tạo ra một biểu đồ gồm 4 cột xanh dương, đỏ, xanh lá, vàng, trục hoành (x) ứng với mức độ tinh khiết của viên kim cương lần lượt là VS1,VS2,VVS2,VVS1, trục tung (y) số lượng của các viên kim cương đó
Theo đồ thị ta thấy là viên kim cương có độ trong VS2 có số lượng nhiều nhất (gần 12500 viên kim cương). Tiếp theo là viên kim cương có độ trong là VS1 (khoảng hơn 7500 viên) và VVS2 (khoảng hơn 5000 viên). Và viên kim cương có độ trong VVS1 chiếm số lượng ít nhất trong 4 loại (khoảng hơn 2500 viên)
Đồ thị thể hiện Giá của các viên Kim cương
a %>% ggplot(aes(x = price)) +
geom_histogram(binwidth = 500, fill = 'green', color = 'red') +
labs(x = 'Price', y = 'Số lượng')
Giải thích câu lệnh:
a %>% ggplot(aes(x = price)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến price trên trục x.
geom_histogram(binwidth = 500, fill = ‘green’, color = ‘red’): Thêm một layer biểu đồ histogram vào khung biểu đồ. Các thanh histogram được tạo ra với chiều rộng của mỗi biến là 500 (USD). Màu nền của histogram được tô màu xanh lá cây (fill = ‘green’) và màu viền của histogram được tô màu đỏ (color = ‘red’).
Kết quả
Tạo ra một đồ thị về mức giá của các viên kim cương từ 0-200000 (USD). Trục hoành(x) là các mức giá của kim cương và trục tung (y) là số lượng của các viên kim cương tương ứng với các mức giá
Theo đồ thị ta thấy khoảng giá từ 0-5000(USD) có số lượng các viên kim cương nhiều nhất và sô lượng các viên kim cương giảm dần về sau khi mức giá tăng lên đến khoảng gần 200000(USD)
Đồ thị thể hiện độ sâu của vết cắt của các viên kim cương
a %>% ggplot(aes(x = depth)) +
geom_histogram(binwidth = 1, fill = 'violet', color = 'black') +
labs(x = 'Depth', y = 'Số lượng')
Giải thích câu lệnh:
a %>% ggplot(aes(x = depth)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến depth trên trục x.
geom_histogram(binwidth = 1, fill = ‘violet’, color = ‘black’): Thêm một layer biểu đồ histogram vào khung biểu đồ. Các thanh histogram được tạo ra với chiều rộng của mỗi biến là 1 đơn vị. Màu nền của histogram được tô màu tím (fill = ‘violet’) và màu viền của histogram được tô màu đen (color = ‘black’).
Kết quả:
Tạo ra một đồ thị về độ sâu của vết cắt các viên kim cương, trục hoành (x) là độ sâu của vết cắt từ 0-80(mm), trục tung (y) là số lượng của các viên kim cương theo độ sâu vết cắt từ 0-20000 viên
Theo đồ thị ta thấy số lượng viên kim cương nhiều nhất khi độ sâu của vết cắt nằm trong khoảng từ 60-65(mm) và mật độ các viên kim cương thưa dần về 2 bên của đồ thị
Đồ Thị thể hiện giá của các viên kim cương có phân loại theo màu sắc
a %>% ggplot(aes(x = price, fill = color)) +
geom_histogram(binwidth = 2000) +
labs(x = 'Price', y = 'Số lượng')
Giải thích câu lệnh:
a %>% ggplot(aes(x = price, fill = color)): Tạo một khung biểu đồ mới, thiết lập mối quan hệ giữa biến price trên trục x và sử dụng biến color để tạo các nhóm màu sắc.
geom_histogram(binwidth = 2000): Thêm một layer biểu đồ histogram vào khung biểu đồ. Các thanh histogram được tạo ra với chiều rộng của mỗi biến là 2000 đơn vị giá. Các nhóm màu sắc sẽ phân biệt các thanh histogram dựa trên giá trị của biến color.
Kết quả: