Bộ dữ liệu “diamonds” là một trong những bộ dữ liệu phổ biến trong lĩnh vực khoa học dữ liệu và máy học. Bộ dữ liệu này thường được sử dụng để thực hành các kỹ thuật phân tích dữ liệu và dự đoán giá trị. Dữ liệu bao gồm các thông tin về các viên kim cương, bao gồm các thuộc tính như cân nặng (carat), cắt (cut), màu sắc (color), độ trong suốt (clarity), và giá trị (price).
Số lượng dữ liệu: Bộ dữ liệu thường chứa khoảng 53,940 dòng (bản ghi) và 10 cột (biến).
Thuộc tính (biến):
carat: Trọng lượng của viên kim cương (carat).
cut: Mức độ cắt của viên kim cương, được phân loại thành các loại như “Fair”, “Good”, “Very Good”, “Premium”, và “Ideal”.
color: Màu sắc của viên kim cương, thường được mã hóa bằng các ký tự từ “D” (màu sắc tốt nhất) đến “J” (màu sắc tồi nhất).
clarity: Độ trong suốt của viên kim cương, được phân loại thành các loại như “IF” (Internal Flawless), “VVS1” (Very, Very Slightly Included 1), “VS1” (Very Slightly Included 1), “SI1” (Slightly Included 1), “SI2” (Slightly Included 2), và “I1” (Included 1).
depth: Độ sâu của viên kim cương.
table: Độ rộng của bảng (phần trên của viên kim cương).
price: Giá trị của viên kim cương (USD).
x: Chiều dài của viên kim cương (mm).
y: Chiều rộng của viên kim cương (mm).
z: Độ sâu của viên kim cương (mm).
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\RtmpkdzwUM\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
d <- diamonds
Giải thích 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 đồ.
dd <- 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 d
d %>% ggplot(aes(x = color)) +
geom_bar() +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh
d %>% 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 d 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ả:
Trục x thể hiện các màu sắc của kim cương (D,E,F,G,H,I,J)
Trục y thể hiện số lượng kim cương tương ứng với mỗi màu
Chiều cao của mỗi cột thể hiện số lượng kim cương thuộc màu đó
d %>% ggplot(aes(x = cut)) +
geom_bar() +
labs(x = 'Loại', y = 'Số lượng')
Giải Thích Câu Lệnh:
d %>% 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 d 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ả:
Biểu đồ thể hiện số lượng kim cương thuộc từng cấp độ chất lượng khác nhau trong bộ dữ liệu diamonds (Fair, Good, Very Good, Premium, Ideal)
Trục x thể hiện các cấp độ chất lượng kim cương, từ thấp đến cao (từ “Fair” đến “Ideal”).
Trục y thể hiện số lượng kim cương tương ứng với mỗi cấp độ chất lượng.
Chiều cao của mỗi cột thể hiện số lượng kim cương thuộc cấp độ chất lượng đó.
d %>% 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:
dd %>% 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 d 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ả:
Biểu đồ thể hiện số lượng kim cương thuộc từng cấp độ độ trong suốt khác nhau trong bộ dữ liệu diamonds (I1, SI2, SI1, VS2, VS1, VVS2, VVS1, IF)
Trục x thể hiện các cấp độ độ trong suốt kim cương, từ thấp đến cao (từ “I1” đến “IF”)
Trục y thể hiện số lượng kim cương tương ứng với mỗi cấp độ độ trong suốt.
Chiều cao của mỗi cột thể hiện số lượng kim cương thuộc cấp độ độ trong suốt đó.
d %>% group_by(color) %>% summarise(n = n()) %>%
ggplot(aes(color,n)) +
geom_col(fill='yellow') +
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
d %>% group_by(color) %>% summarise(n = n()): Nhóm dữ liệu trong d 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=‘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 = 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 vàng, 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
d %>% group_by(cut) %>% summarise(n = n()) %>%
ggplot(aes(cut,n)) +
geom_col(fill='pink') +
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
d %>% group_by(cut) %>% summarise(n = n()): Nhóm dữ liệu trong d 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=‘pink’): Thêm một layer biểu đồ cột vào khung biểu đồ với màu nền hồng.
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
d %>% group_by(clarity) %>% summarise(n = n()) %>%
ggplot(aes(clarity,n)) +
geom_col(fill='red') +
geom_text(aes(label = n),vjust = 1, color = 'yellow') +
labs(x = 'Mức độ tinh khiết', y = 'Số lượng')
Giải thích câu lệnh
d %>% group_by(clarity) %>% summarise(n = n()): Nhóm dữ liệu trong d 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=‘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 = 1, color = ‘yellow’): 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à vàng
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.
Với mã I1 gồm có 741 viên kim cương
Với mã SI1 gồm có 9194 viên kim cương
Với mã SI2 gồm có 13065 viên kim cương
Với mã VS2 gồm có 12258 viên kim cương
Với mã VS1 gồm có 8171 viên kim cương
Với mã VVS2 gồm có 5066 viên kim cương
Với mã VVS1 gồm có 3655 viên kim cương
Với mã IF gồm có 1790 viên kim cương
d <- diamonds
d %>% group_by(color) %>% summarise(k= mean(carat)) %>%
ggplot(aes(color,k)) +
geom_col(fill='violet') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh
d %>% group_by(color) %>% summarise(k= mean(carat)): Dùng để nhóm dữ liệu theo màu sắc (color) của các viên kim cương, sau đó tính trung bình trọng lượng (carat) của từng nhóm.
ggplot(aes(color,k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(color,k) cho biết rằng trục x sẽ biểu diễn màu sắc và trục y sẽ biểu diễn trung bình trọng lượng (carat).
geom_col(fill=‘violet’): Thêm một layer để vẽ biểu đồ cột. Tham số fill=‘violet’ xác định màu nền của các cột là màu tím.
geom_text(aes(label = round(k,2)),vjust = 1, color = ‘black’): Thêm văn bản vào biểu đồ để hiển thị giá trị trung bình trên mỗi cột. aes(label = round(k,2)) xác định nội dung của văn bản là giá trị trung bình được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là đen.
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ả:
Biểu đồ này thể hiện giá trị trung bình trọng lượng carat của kim cương thuộc từng màu sắc khác nhau trong bộ dữ liệu diamonds.
Màu D có giá trị trung bình là 0.66
Màu E có giá trị trung bình là 0.66
Màu F có giá trị trung bình là 0.74
Màu G có giá trị trung bình là 0.77
Màu H có giá trị trung bình là 0.91
Màu I có giá trị trung bình là 1.03
Màu J có giá trị trung bình là 1.16
d <- diamonds
d %>% group_by(cut) %>% summarise(k= mean(carat)) %>%
ggplot(aes(cut,k)) +
geom_col(fill='skyblue') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Chất lượng cắt', y = 'Số lượng')
Giải thích câu lệnh
d %>% group_by(cut) %>% summarise(k = mean(carat)): Dùng để nhóm dữ liệu theo chất lượng cắt (cut) của các viên kim cương, sau đó tính trung bình trọng lượng (carat) của từng nhóm.
ggplot(aes(cut,k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(cut, k) cho biết rằng trục x sẽ biểu diễn chất lượng cắt và trục y sẽ biểu diễn trung bình trọng lượng (carat).
geom_col(fill=‘skyblue’): Thêm một layer để vẽ biểu đồ cột. Tham số fill=‘skyblue’ xác định màu nền của các cột là màu xanh da trời.
geom_text(aes(label = round(k, 2)), vjust = 1, color = ‘black’): Thêm văn bản vào biểu đồ để hiển thị giá trị trung bình trên mỗi cột. aes(label = round(k, 2)) xác định nội dung của văn bản là giá trị trung bình được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là đen.
labs(x = ‘Chất lượng cắt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Chất lượng cắt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện giá trị trung bình của trọng lượng carat theo từng chất lượng cắt của kim cương trong bộ dữ liệu diamonds.
Với loại Fair có giá trị trung bình là 1.05
Với loại Good có giá trị trung bình là 0.85
Với loại Very Good có giá trị trung bình là 0.81
Với loại Premium có giá trị trung bình là 0.89
Với loại Ideal có giá trị trung bình là 0.7
d <- diamonds
d %>% group_by(clarity) %>% summarise(k= mean(carat)) %>%
ggplot(aes(clarity,k)) +
geom_col(fill='violet') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'yellow') +
labs(x = 'Độ trong suốt', y = 'Số lượng')
Giải thích dữ liệu
d %>% group_by(clarity) %>% summarise(k = mean(carat)): Dùng để nhóm dữ liệu theo độ trong suốt (clarity) của các viên kim cương, sau đó tính trung bình trọng lượng (carat) của từng nhóm.
ggplot(aes(clarity, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(clarity, k) cho biết rằng trục x sẽ biểu diễn độ trong suốt và trục y sẽ biểu diễn trung bình trọng lượng (carat).
geom_col(fill = ‘violet’): Thêm một layer để vẽ biểu đồ cột. Tham số fill = ‘violet’ xác định màu nền của các cột là màu tím.
geom_text(aes(label = round(k, 2)), vjust = 1, color = ‘yellow’): Thêm văn bản vào biểu đồ để hiển thị giá trị trung bình trên mỗi cột. aes(label = round(k, 2)) xác định nội dung của văn bản là giá trị trung bình được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘yellow’ xác định màu văn bản là màu vàng.
labs(x = ‘Độ trong suốt’, y = ‘Trọng lượng trung bình (carat)’): Đặt nhãn cho trục x là ‘Độ trong suốt’ và trục y là ‘Trọng lượng trung bình (carat)’.
Kết quả:
Biểu đồ này thể hiện giá trị trung bình của trọng lượng carat theo từng độ trong suốt của kim cương trong bộ dữ liệu diamonds.
Với mã I1 có giá trị trung bình là 1.28
Với mã SI2 có giá trị trung bình là 1.08
Với mã SI1 có giá trị trung bình là 0.85
Với mã VS2 có giá trị trung bình là 0.76
Với mã VS1 có giá trị trung bình là 0.73
Với mã VVS2 có giá trị trung bình là 0.6
Với mã VVS1 có giá trị trung bình là 0.5
Với mã IF có giá trị trung bình là 0.51
d <- diamonds
d %>% group_by(color) %>% summarise(k= mean(price)) %>%
ggplot(aes(color,k)) +
geom_col(fill='pink') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'yellow') +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh:
d %>% group_by(color) %>% summarise(k = mean(price)): Sử dụng dữ liệu được nhóm theo màu sắc của viên kim cương và tính giá trị trung bình của từng nhóm. Điều này được thực hiện bằng cách sử dụng hàm group_by() để nhóm dữ liệu theo màu sắc và hàm summarise() để tính giá trị trung bình của giá (price) cho mỗi nhóm.
ggplot(aes(color, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(color, k) cho biết rằng trục x sẽ biểu diễn màu sắc và trục y sẽ biểu diễn giá trị trung bình.
geom_col(fill = ‘pink’): Thêm một layer để vẽ biểu đồ cột, với màu nền của các cột là màu hồng.
geom_text(aes(label = round(k, 2)), vjust = 1, color = ‘yellow’): Thêm văn bản để hiển thị giá trị trung bình trên mỗi cột. aes(label = round(k, 2)) xác định nội dung của văn bản là giá trị trung bình được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘yellow’ xác định màu văn bản là màu và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ả:
Biểu đồ này thể hiện giá trị trung bình của giá bán theo từng màu sắc của kim cương trong bộ dữ liệu diamonds.
Màu D có giá bán trung bình là 3169.95
Màu E có giá bán trung bình là 3076.75
Màu F có giá bán trung bình là 3724.89
Màu G có giá bán trung bình là 3999.14
Màu H có giá bán trung bình là 4486.67
Màu I có giá bán trung bình là 5091.87
Màu J có giá bán trung bình là 5323.82
d <- diamonds
d %>% group_by(cut) %>% summarise(k= mean(price)) %>%
ggplot(aes(cut,k)) +
geom_col(fill='skyblue') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Chất lượng cắt', y = 'Số lượng')
Giải thích câu lệnh:
d %>% group_by(cut) %>% summarise(k = mean(price)): Dữ liệu được nhóm lại theo chất lượng cắt (cut) của viên kim cương và tính giá trị trung bình của giá (price) cho mỗi nhóm. Điều này được thực hiện bằng cách sử dụng hàm group_by() để nhóm dữ liệu theo chất lượng cắt và hàm summarise() để tính giá trị trung bình của giá cho mỗi nhóm.
ggplot(aes(cut, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(cut, k) cho biết rằng trục x sẽ biểu diễn chất lượng cắt và trục y sẽ biểu diễn giá trị trung bình.
geom_col(fill = ‘skyblue’): Thêm một layer để vẽ biểu đồ cột, với màu nền của các cột là màu xanh da trời.
geom_text(aes(label = round(k, 2)), vjust = 1, color = ‘black’): Thêm văn bản để hiển thị giá trị trung bình trên mỗi cột. aes(label = round(k, 2)) xác định nội dung của văn bản là giá trị trung bình được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là màu đen.
labs(x = ‘Chất lượng cắt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Chất lượng cắt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện giá trị trung bình của giá bán theo từng chất lượng cắt của kim cương trong bộ dữ liệu diamonds.
Với loại Fair có giá bán trung bình là 4358.76
Với loại Good có giá bán trung bình là 3928.86
Với loại Very Good có giá bán trung bình là 3981.76
Với loại Premium có giá bán trung bình là 4584.26
Với loại Ideal có giá bán trung bình là 3457.54
d <- diamonds
d %>% group_by(clarity) %>% summarise(k= mean(price)) %>%
ggplot(aes(clarity,k)) +
geom_col(fill='red') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Độ trong suốt', y = 'Số lượng')
Giải thích câu lệnh:
d %>% group_by(clarity) %>% summarise(k= mean(price)): Nhóm dữ liệu theo độ trong suốt (clarity) của các viên kim cương và tính giá trị trung bình của giá (price) cho từng nhóm. Điều này được thực hiện bằng cách sử dụng group_by() để nhóm dữ liệu theo độ trong suốt và summarise() để tính giá trị trung bình của giá cho mỗi nhóm.
ggplot(aes(clarity, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(clarity, k) xác định rằng trục x sẽ biểu diễn độ trong suốt và trục y sẽ biểu diễn giá trị trung bình.
geom_col(fill=‘red’): Thêm một layer để vẽ biểu đồ cột, với màu nền của các cột là màu đỏ.
geom_text(aes(label = round(k,2)),vjust = 1, color = ‘black’): Thêm văn bản để hiển thị giá trị trung bình trên mỗi cột. aes(label = round(k,2)) xác định nội dung của văn bản là giá trị trung bình được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là màu đen.
labs(x = ‘Độ trong suốt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Độ trong suốt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện giá trị trung bình của giá bán theo từng độ trong suốt của kim cương trong bộ dữ liệu diamonds.
Mã I1 có giá bán trung bình là 3924.17
Mã SI2 có giá bán trung bình là 5063.03
Mã SI1 có giá bán trung bình là 3996
Mã VS2 có giá bán trung bình là 3924.99
Mã VS1 có giá bán trung bình là 3839.46
Mã VVS2 có giá bán trung bình là 3283.74
Mã VVS1 có giá bán trung bình là 2523.11
Mã IF có giá bán trung bình là 2864.84
d <- diamonds
d %>% group_by(color) %>% summarise(k= var(price)) %>%
ggplot(aes(color,k)) +
geom_col(fill='pink') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Màu', y = 'Số lượng')
Giải thích câu lệnh:
d <- diamonds: Bước này tạo ra một bản sao của bộ dữ liệu diamonds và gán cho biến d, giúp chúng ta làm việc với bộ dữ liệu mà không làm thay đổi dữ liệu gốc.
d %>% group_by(color) %>% summarise(k= var(price)): Nhóm dữ liệu theo màu sắc của viên kim cương và tính phương sai của giá (price) cho từng nhóm. Điều này được thực hiện bằng cách sử dụng group_by() để nhóm dữ liệu theo màu sắc và summarise() để tính phương sai của giá cho mỗi nhóm.
ggplot(aes(color, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(color, k) xác định rằng trục x sẽ biểu diễn màu sắc và trục y sẽ biểu diễn phương sai.
geom_col(fill=‘pink’): Thêm một layer để vẽ biểu đồ cột, với màu nền của các cột là màu hồng.
geom_text(aes(label = round(k,2)),vjust = 1, color = ‘black’): Thêm văn bản để hiển thị giá trị phương sai trên mỗi cột. aes(label = round(k,2)) xác định nội dung của văn bản là giá trị phương sai được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là màu đen.
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ả:
Biểu đồ này thể hiện phương sai của giá bán theo từng màu sắc của kim cương trong bộ dữ liệu diamonds. Phương sai là một thước đo mức độ phân tán của dữ liệu.
Màu D có phương sai giá bán là 11266702.7
Màu E có phương sai giá bán là 11183397.31
Màu F có phương sai giá bán là 14326164.49
Màu G có phương sai giá bán là 16411434.27
Màu H có phương sai giá bán là 17774185.25
Màu I có phương sai giá bán là 22300944.68
Màu J có phương sai giá bán là 19697506.07
d <- diamonds
d %>% group_by(cut) %>% summarise(k= var(price)) %>%
ggplot(aes(cut,k)) +
geom_col(fill='pink') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Chất lượng cắt', y = 'Số lượng')
Giải thích câu lệnh:
d <- diamonds: Bước này tạo ra một bản sao của bộ dữ liệu diamonds và gán cho biến d, giúp chúng ta làm việc với bộ dữ liệu mà không làm thay đổi dữ liệu gốc.
d %>% group_by(cut) %>% summarise(k= var(price)): Nhóm dữ liệu theo chất lượng cắt (cut) của viên kim cương và tính phương sai của giá (price) cho từng nhóm. Điều này được thực hiện bằng cách sử dụng group_by() để nhóm dữ liệu theo chất lượng cắt và summarise() để tính phương sai của giá cho mỗi nhóm.
ggplot(aes(cut, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(cut, k) xác định rằng trục x sẽ biểu diễn chất lượng cắt và trục y sẽ biểu diễn phương sai.
geom_col(fill=‘pink’): Thêm một layer để vẽ biểu đồ cột, với màu nền của các cột là màu hồng.
geom_text(aes(label = round(k,2)),vjust = 1, color = ‘black’): Thêm văn bản để hiển thị giá trị phương sai trên mỗi cột. aes(label = round(k,2)) xác định nội dung của văn bản là giá trị phương sai được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là màu đen.
labs(x = ‘Chất lượng cắt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Chất lượng cắt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện phương sai của giá bán theo từng chất lượng cắt của kim cương trong bộ dữ liệu diamonds. Phương sai là một thước đo mức độ phân tán của dữ liệu.
Loại Fair có phương sai giá bán là 12676352.83
Loại Good có phương sai giá bán là 13554101.86
Loại Very Good có phương sai giá bán là 15491010.95
Loại *Premium** có phương sai giá bán là 18915583.8
Loại Ideal có phương sai giá bán là 14503919.49
d <- diamonds
d %>% group_by(clarity) %>% summarise(k= var(price)) %>%
ggplot(aes(clarity,k)) +
geom_col(fill='pink') +
geom_text(aes(label = round(k,2)),vjust = 0.85, color = 'black') +
labs(x = 'Độ trong suốt', y = 'Số lượng')
Giải thích câu lệnh:
d <- diamonds: Bước này tạo ra một bản sao của bộ dữ liệu diamonds và gán cho biến d, giúp chúng ta làm việc với bộ dữ liệu mà không làm thay đổi dữ liệu gốc.
d %>% group_by(clarrity) %>% summarise(k= var(price)): Nhóm dữ liệu theo độ trong suốt của viên kim cương và tính phương sai của giá (price) cho từng nhóm. Điều này được thực hiện bằng cách sử dụng group_by() để nhóm dữ liệu theo độ trong suốt
ggplot(aes(clarrity, k)): Tạo một đối tượng ggplot với dữ liệu đã được tổng hợp. Tham số aes(clarrity, k) xác định rằng trục x sẽ biểu diễn độ trong suốt và trục y sẽ biểu diễn phương sai.
geom_col(fill=‘pink’): Thêm một layer để vẽ biểu đồ cột, với màu nền của các cột là màu hồng.
geom_text(aes(label = round(k,2)),vjust = 1, color = ‘black’): Thêm văn bản để hiển thị giá trị phương sai trên mỗi cột. aes(label = round(k,2)) xác định nội dung của văn bản là giá trị phương sai được làm tròn đến 2 chữ số sau dấu thập phân. vjust = 1 xác định vị trí dọc của văn bản trên mỗi cột là 1 (ở phía trên). color = ‘black’ xác định màu văn bản là màu đen.
labs(x = ‘Độ trong suốt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Độ trong suốt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện phương sai của giá bán theo từng độ trong suốt của kim cương trong bộ dữ liệu diamonds. Phương sai là một thước đo mức độ phân tán của dữ liệu.
Mã I1 có phương sai giá bán là 7878004.26
Mã SI2 có phương sai giá bán là 18151507.3
Mã SI1 có phương sai giá bán là 14436077.55
Mã VS2 có phương sai giá bán là 16340212.06
Mã VS1 có phương sai giá bán là 16094121.68
Mã VVS2 có phương sai giá bán là 14604989.9
Mã VVS1 có phương sai giá bán là 11121150.41
Mã IF có phương sai giá bán là 15368348.29
d <- diamonds
d %>% group_by(color) %>% summarise(k= var(carat)) %>%
ggplot(aes(color,k)) +
geom_col(fill='violet') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Màu', y = 'Số lượng')
Giải thích dữ liệu:
d %>% group_by(color): Dữ liệu về kim cương được nhóm lại theo màu sắc.
summarise(k = var(carat)): Tính toán phương sai của trọng lượng carat cho mỗi nhóm màu sắc.
ggplot(aes(color, k)): Tạo biểu đồ sử dụng màu sắc để đại diện cho các nhóm và giá trị phương sai của trọng lượng carat.
geom_col(fill=‘violet’): Vẽ biểu đồ cột với màu nền là màu violet để thể hiện giá trị phương sai.
geom_text(aes(label = round(k,2)), vjust = 1, color = ‘black’): Thêm văn bản hiển thị giá trị phương sai lên trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân và màu văn bản là đen.
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ả:
Biểu đồ này thể hiện mức độ phân tán của trọng lượng carat (k) theo từng màu sắc của kim cương trong tập dữ liệu diamonds.
Màu D có độ phân tán trọng lượng carat là 0.13
Màu E có độ phân tán trọng lượng carat là 0.14
Màu F có độ phân tán trọng lượng carat là 0.16
Màu G có độ phân tán trọng lượng carat là 0.19
Màu H có độ phân tán trọng lượng carat là 0.27
Màu I có độ phân tán trọng lượng carat là 0.34
Màu J có độ phân tán trọng lượng carat là 0.35
d <- diamonds
d %>% group_by(cut) %>% summarise(k= var(carat)) %>%
ggplot(aes(cut,k)) +
geom_col(fill='pink') +
geom_text(aes(label = round(k,3)),vjust = 1, color = 'black') +
labs(x = 'Chất lượng cắt', y = 'Số lượng')
Giải thích câu lệnh:
d %>% group_by(cut): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt.
summarise(k = var(carat)): Tính toán phương sai của trọng lượng carat cho mỗi nhóm chất lượng cắt.
ggplot(aes(cut, k)): Tạo biểu đồ sử dụng chất lượng cắt để đại diện cho các nhóm và giá trị phương sai của trọng lượng carat.
geom_col(fill=‘pink’): Vẽ biểu đồ cột với màu nền là màu hồng để thể hiện giá trị phương sai.
geom_text(aes(label = round(k,3)), vjust = 1, color = ‘black’): Thêm văn bản hiển thị giá trị phương sai lên trên mỗi cột, với giá trị được làm tròn đến ba chữ số sau dấu thập phân và màu văn bản là đen.
labs(x = ‘Chất lượng cắt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Chất lượng cắt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện phương sai của trọng lượng carat theo từng chất lượng cắt của kim cương trong bộ dữ liệu diamonds. Phương sai là một thước đo mức độ phân tán của dữ liệu.
Loại Fair có phương sai trọng lượng carat là 0.267
Loại Good có phương sai trọng lượng carat là 0.206
Loại Very Good có phương sai trọng lượng carat là 0.211
Loại Premium có phương sai trọng lượng carat là 0.265
Loại Ideal có phương sai trọng lượng carat là 0.18187
d <- diamonds
d %>% group_by(clarity) %>% summarise(k= var(carat)) %>%
ggplot(aes(clarity,k)) +
geom_col(fill='pink') +
geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
labs(x = 'Độ trong suốt', y = 'Số lượng')
Giải thích câu lệnh:
d %>% group_by(clarity): Dữ liệu về kim cương được nhóm lại theo độ trong suốt.
summarise(k = var(carat)): Tính toán phương sai của trọng lượng carat cho mỗi nhóm độ trong suốt.
ggplot(aes(clarity, k)): Tạo biểu đồ sử dụng độ trong suốt để đại diện cho các nhóm và giá trị phương sai của trọng lượng carat.
geom_col(fill=‘pink’): Vẽ biểu đồ cột với màu nền là màu hồng để thể hiện giá trị phương sai.
geom_text(aes(label = round(k,2)), vjust = 1, color = ‘black’): Thêm văn bản hiển thị giá trị phương sai lên trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân và màu văn bản là đen.
labs(x = ‘Độ trong suốt’, y = ‘Số lượng’): Đặt nhãn cho trục x là ‘Độ trong suốt’ và trục y là ‘Số lượng’.
Kết quả:
Biểu đồ này thể hiện phương sai của trọng lượng carat theo từng độ trong suốt của kim cương trong bộ dữ liệu diamonds. Phương sai là một thước đo mức độ phân tán của dữ liệu.
Mã I1 có phương sai trọng lượng carat là 0.4
Mã SI2 có phương sai trọng lượng carat là 0.27
Mã SI1 có phương sai trọng lượng carat là 0.2
Mã VS2 có phương sai trọng lượng carat là 0.3
Mã VS1 có phương sai trọng lượng carat là 0.18
Mã VVS2 có phương sai trọng lượng carat là 0.13
Mã VVS1 có phương sai trọng lượng carat là 0.09
Mã IF có phương sai trọng lượng carat là 0.1
d <- diamonds
d <- d %>% group_by(cut, color) %>% summarise(n = n())
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
d %>% ggplot(aes(x = cut, y = n)) +
geom_col(data = d %>% filter(color == 'E'), fill = 'red') +
geom_col(data = d %>% filter(color == 'H'), fill = 'blue')
Giải thích câu lệnh:
d <- d %>% group_by(cut, color) %>% summarise(n = n()): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt và màu sắc, sau đó tính toán số lượng kim cương cho mỗi nhóm bằng hàm summarise(n = n()).
d %>% ggplot(aes(x = cut, y = n)): Tạo biểu đồ sử dụng chất lượng cắt làm trục x và số lượng kim cương làm trục y.
geom_col(data = d %>% filter(color == ‘E’), fill = ‘red’): Vẽ biểu đồ cột cho các dòng dữ liệu có màu sắc là ‘E’ (màu trắng) với màu nền là đỏ.
geom_col(data = d %>% filter(color == ‘H’), fill = ‘blue’): Vẽ biểu đồ cột cho các dòng dữ liệu có màu sắc là ‘H’ (màu vàng) với màu nền là xanh.
Kết quả:
Biểu đồ này thể hiện số lượng kim cương theo từng chất lượng cắt (cut) và màu sắc (color) trong bộ dữ liệu diamonds.
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Fair” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện số lượng (n) kim cương.
Cột màu xanh nhạt (“red”): Biểu thị số lượng kim cương có màu E theo từng chất lượng cắt.
Cột màu hồng (“blue”): Biểu thị số lượng kim cương có màu H theo từng chất lượng cắt.
d <- diamonds
d <- d %>% group_by(cut, color) %>% summarise(n = n())
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
d %>% ggplot(aes(x = cut, y = n)) +
geom_col(data = d %>% filter(color == 'E'), fill = 'red') +
geom_col(data = d %>% filter(color == 'I'), fill = 'blue')
Giải thích kết quả:
d <- d %>% group_by(cut, color) %>% summarise(n = n()): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt và màu sắc, sau đó tính toán số lượng kim cương cho mỗi nhóm bằng hàm summarise(n = n()).
d %>% ggplot(aes(x = cut, y = n)): Tạo biểu đồ sử dụng chất lượng cắt làm trục x và số lượng kim cương làm trục y.
geom_col(data = d %>% filter(color == ‘E’), fill = ‘red’): Vẽ biểu đồ cột cho các dòng dữ liệu có màu sắc là ‘E’ (màu trắng) với màu nền là đỏ.
geom_col(data = d %>% filter(color == ‘I’), fill = ‘blue’): Vẽ biểu đồ cột cho các dòng dữ liệu có màu sắc là ‘I’ ( màu nâu) với màu nền là xanh.
Kết quả:
Biểu đồ này thể hiện số lượng kim cương theo từng chất lượng cắt (cut) và màu sắc (color) trong bộ dữ liệu diamonds.
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Fair” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện số lượng (n) kim cương.
Cột màu xanh nhạt (“red”): Biểu thị số lượng kim cương có màu E theo từng chất lượng cắt.
Cột màu hồng (“blue”): Biểu thị số lượng kim cương có màu I theo từng chất lượng cắt.
d <- diamonds
d <- d %>% mutate(caratC = cut(carat,5, label = c('rất nhỏ', 'nhỏ','vừa','lớn','rất lớn')))
d %>% ggplot(aes(x = caratC)) +
geom_bar(fill = 'pink')
labs(x= 'Chất lượng cắt')
## $x
## [1] "Chất lượng cắt"
##
## attr(,"class")
## [1] "labels"
Giải thích câu lệnh
d <- d %>% mutate(caratC = cut(carat, 5, label = c(‘rất nhỏ’, ‘nhỏ’,‘vừa’,‘lớn’,‘rất lớn’))): Sử dụng hàm cut() để chia dữ liệu trọng lượng carat thành 5 khoảng dựa trên số lượng cắt (5), và gán nhãn cho mỗi khoảng từ ‘rất nhỏ’ đến ‘rất lớn’. Kết quả được lưu vào cột mới caratC.
d %>% ggplot(aes(x = caratC)): Tạo biểu đồ sử dụng cột caratC làm trục x .
geom_bar(fill = ‘pink’): Vẽ biểu đồ cột với màu nền là màu hồng, thể hiện tần suất của mỗi nhóm trong cột caratC.
labs(x= ‘Chất lượng cắt’): Đặt nhãn cho trục x là ‘Chất lượng cắt’.
Kết quả:
Biểu đồ này thể hiện phân bố của chất lượng cắt kim cương trong bộ dữ liệu diamonds.
Trục x: Thể hiện các chất lượng cắt được chia thành 5 nhóm: “rất nhỏ”, “nhỏ”, “vừa”, “lớn”, “rất lớn”.
Trục y: Thể hiện số lượng kim cương thuộc mỗi nhóm chất lượng cắt.
Cột màu hồng: Biểu thị số lượng kim cương cho mỗi nhóm chất lượng cắt.
d <- diamonds
d %>% group_by(cut,color) %>% summarise(n =n()) %>%
ggplot(aes(x = cut,y = n)) +
geom_col(position = 'dodge', fill= 'green') +
facet_wrap(~color) +
geom_text(aes(label = n),vjust = 0.65, color = 'yellow') +
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:
d %>% group_by(cut, color) %>% summarise(n = n()): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt và màu sắc, sau đó tính toán số lượng kim cương cho mỗi cặp chất lượng cắt và màu sắc
ggplot(aes(x = cut, y = n)): Tạo biểu đồ sử dụng chất lượng cắt làm trục x và số lượng kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘green’): Vẽ biểu đồ cột với mỗi cột tương ứng với một cặp chất lượng cắt và màu sắc, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu xanh lá cây.
facet_wrap(~color): Chia biểu đồ thành các nhóm con dựa trên màu sắc của kim cương. Thêm văn bản trên các cột:
geom_text(aes(label = n), vjust = 0.65, color = ‘yellow’): Thêm văn bản hiển thị số lượng kim cương trên mỗi cột, với vị trí văn bản được chỉ định bởi vjust = 0.65 (để canh chỉnh văn bản sao cho nằm ở giữa cột) và màu văn bản là màu vàng.
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 đồ này thể hiện phân bố số lượng kim cương theo chất lượng cắt (cut) được tách riêng theo màu sắc (color) trong bộ dữ liệu d. Các thành phần:
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Poor” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện số lượng (n) kim cương.
Các mặt cắt (facets): Biểu đồ được chia thành hai mặt cắt theo màu sắc (color) của kim cương, được phân biệt bằng nhãn ở phía trên mỗi mặt cắt.
Mặt cắt D: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc D.
Mặt cắt E: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc E.
Mặt cắt F: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc F.
Mặt cắt G: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc G.
Mặt cắt H: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc H.
Mặt cắt I: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc I.
Mặt cắt J: Biểu thị phân bố số lượng kim cương theo chất lượng cắt cho màu sắc J .
Cột màu xanh lá (“green”): Biểu thị số lượng kim cương cho mỗi chất lượng cắt trong mỗi mặt cắt.
Chú thích văn bản màu vàng(“yellow”): Hiển thị số lượng kim cương chính xác (n) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 0.65 để tránh chồng chéo lên các cột.
d <- diamonds
d %>% group_by(cut,color) %>% summarise(k =mean(price)) %>%
ggplot(aes(x = cut,y = k)) +
geom_col(position = 'dodge', fill= 'red') +
facet_wrap(~color) +
geom_text(aes(label = round(k,1)),vjust = 0.25, color = 'black') +
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:
d %>% group_by(cut, color) %>% summarise(k = mean(price)): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt và màu sắc, sau đó tính toán giá trung bình của kim cương cho mỗi cặp chất lượng cắt và màu sắc.
ggplot(aes(x = cut, y = k)): Tạo biểu đồ sử dụng chất lượng cắt làm trục x và giá trung bình của kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘red’): Vẽ biểu đồ cột với mỗi cột tương ứng với một cặp chất lượng cắt và màu sắc, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu đỏ.
facet_wrap(~color): Chia biểu đồ thành các nhóm con dựa trên màu sắc của kim cương.
geom_text(aes(label = round(k,1)), vjust = 0.25, color = ‘black’): Thêm văn bản hiển thị giá trung bình của kim cương trên mỗi cột, với giá trị được làm tròn đến một chữ số sau dấu thập phân (round(k,1)) và vị trí văn bản được chỉ định bởi vjust = 0.25 (để canh chỉnh văn bản sao cho nằm ở trên cột) và màu văn bản là màu đen.
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 đồ này thể hiện giá trung bình của kim cương theo chất lượng cắt (cut) được tách riêng theo màu sắc (color) trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Poor” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện giá trung bình (k) được làm tròn đến 1 chữ số thập phân (round(k, 1)).
Các mặt cắt (facets): Biểu đồ được chia thành hai mặt cắt theo màu sắc (color) của kim cương, được phân biệt bằng nhãn ở phía trên mỗi mặt cắt.
Mặt cắt D: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc D.
Mặt cắt E: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc E.
Mặt cắt F: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc F.
Mặt cắt G: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc G.
Mặt cắt H: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc H.
Mặt cắt I: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc I.
Mặt cắt J: Biểu thị giá trung bình của kim cương theo chất lượng cắt cho màu sắc J.
Cột màu đỏ (“red”): Biểu thị giá trung bình cho mỗi chất lượng cắt trong mỗi mặt cắt.
Chú thích văn bản màu đen (“black”): Hiển thị giá trung bình chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 0.25 để tránh chồng chéo lên các cột.
d <- diamonds
d %>% group_by(cut,color) %>% summarise(k=mean(carat)) %>%
ggplot(aes(x = cut,y = k)) +
geom_col(position = 'dodge', fill= 'green') +
facet_wrap(~color) +
geom_text(aes(label = round(k,2)),vjust = 0.65, color = 'black') +
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 :
d %>% group_by(cut, color) %>% summarise(k = mean(carat)): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt và màu sắc, sau đó tính toán trọng lượng trung bình của kim cương cho mỗi cặp chất lượng cắt và màu sắc.
ggplot(aes(x = cut, y = k)): Tạo biểu đồ sử dụng chất lượng cắt làm trục x và trọng lượng trung bình của kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘green’): Vẽ biểu đồ cột với mỗi cột tương ứng với một cặp chất lượng cắt và màu sắc, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu xanh lá cây.
facet_wrap(~color): Chia biểu đồ thành các nhóm con dựa trên màu sắc của kim cương.
geom_text(aes(label = round(k,2)), vjust = 0.65, color = ‘black’): Thêm văn bản hiển thị trọng lượng trung bình của kim cương trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân (round(k,2)) và vị trí văn bản được chỉ định bởi vjust = 0.65 (để canh chỉnh văn bản sao cho nằm ở trên cột) và màu văn bản là màu đen.
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 đồ này thể hiện trọng lượng carat trung bình của kim cương theo chất lượng cắt (cut) được tách riêng theo màu sắc (color) trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Poor” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện trọng lượng carat trung bình (k) được làm tròn đến 2 chữ số thập phân (round(k, 2)).
Các mặt cắt (facets): Biểu đồ được chia thành hai mặt cắt theo màu sắc (color) của kim cương, được phân biệt bằng nhãn ở phía trên mỗi mặt cắt.
Mặt cắt D: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc D.
Mặt cắt E: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc E.
Mặt cắt F: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc F.
Mặt cắt G: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc G.
Mặt cắt H: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc H.
Mặt cắt I: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc I.
Mặt cắt J: Biểu thị trọng lượng carat trung bình của kim cương theo chất lượng cắt cho màu sắc J.
Cột màu xanh lá (“green”): Biểu thị trọng lượng carat trung bình cho mỗi chất lượng cắt trong mỗi mặt cắt.
Chú thích văn bản màu đen (“black”): Hiển thị trọng lượng carat trung bình chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 0.65 để tránh chồng chéo lên các cột.
d %>% group_by(cut) %>% summarise(m= median(carat)) %>%
ggplot(aes(x = cut,y = m)) +
geom_col(position = 'dodge', fill= 'blue') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'pink') +
labs(x = 'cut', y = 'Median')
Giải thích câu lệnh:
d %>% group_by(cut) %>% summarise(m = median(carat)): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt, sau đó tính toán trọng lượng trung vị của kim cương cho mỗi loại chất lượng cắt.
ggplot(aes(x = cut, y = m)): Tạo biểu đồ sử dụng loại chất lượng cắt làm trục x và trọng lượng trung vị của kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘blue’): Vẽ biểu đồ cột với mỗi cột tương ứng với một loại chất lượng cắt, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu xanh dương.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘pink’): Thêm văn bản hiển thị trọng lượng trung vị của kim cương trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân (round(m,2)) và vị trí văn bản được chỉ định bởi vjust = 2 (để canh chỉnh văn bản sao cho nằm trên cột) và màu văn bản là màu hồng.
labs(x = ‘cut’, y = ‘Median’): Đặt nhãn cho trục x là ‘cut’ (chất lượng cắt) và trục y là ‘Median’ (trung vị).
Kết quả:
Biểu đồ này thể hiện trung vị của trọng lượng carat theo chất lượng cắt (cut) trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Fair” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện trọng lượng carat trung vị (m) được làm tròn đến 2 chữ số thập phân (round(m, 2)).
Cột màu xanh dương (“blue”): Biểu thị trọng lượng carat trung vị cho mỗi chất lượng cắt.
Chú thích văn bản màu hồng (“pink”): Hiển thị trọng lượng carat trung vị chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 2 để tránh chồng chéo lên các cột.
Tựa đề “Median”: Thể hiện trên trục y, cho biết giá trị được hiển thị là trung vị.
d %>% group_by(color) %>% summarise(m= median(carat)) %>%
ggplot(aes(x = color,y = m)) +
geom_col(position = 'dodge', fill= 'violet') +
geom_text(aes(label = round(m,3)), vjust = 2, color = 'yellow') +
labs(x = 'color', y = 'Median')
Kết quả:
Biểu đồ này thể hiện trung vị của trọng lượng carat theo màu sắc (color) trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các màu sắc khác nhau của kim cương.
Trục y: Thể hiện trọng lượng carat trung vị (m) được làm tròn đến 2 chữ số thập phân (round(m, 2)).
Cột màu tím (“violet”): Biểu thị trọng lượng carat trung vị cho mỗi màu sắc.
Chú thích văn bản màu vàng (“yellow”): Hiển thị trọng lượng carat trung vị chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 2 để tránh chồng chéo lên các cột.
Tựa đề “Median”: Thể hiện trên trục y, cho biết giá trị được hiển thị là trung vị.
d %>% group_by(clarity) %>% summarise(m= median(carat)) %>%
ggplot(aes(x = clarity,y = m)) +
geom_col(position = 'dodge', fill= 'blue') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'red') +
labs(x = 'clarity', y = 'Median')
Giải thích câu lệnh :
d %>% group_by(clarity) %>% summarise(m = median(carat)): Dữ liệu về kim cương được nhóm lại theo độ trong suốt, sau đó tính toán trọng lượng trung vị của kim cương cho mỗi loại độ trong suốt.
ggplot(aes(x = clarity, y = m)): Tạo biểu đồ sử dụng độ trong suốt làm trục x và trọng lượng trung vị của kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘blue’): Vẽ biểu đồ cột với mỗi cột tương ứng với một loại độ trong suốt, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu xanh dương.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘red’): Thêm văn bản hiển thị trọng lượng trung vị của kim cương trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân (round(m,2)) và vị trí văn bản được chỉ định bởi vjust = 2 (để canh chỉnh văn bản sao cho nằm trên cột) và màu văn bản là màu đỏ.
labs(x = ‘clarity’, y = ‘Median’): Đặt nhãn cho trục x là ‘clarity’ (độ trong suốt) và trục y là ‘Median’ (trung vị).
Kết quả:
Biểu đồ này thể hiện trung vị của trọng lượng carat theo độ tinh khiết (clarity) của kim cương trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các mức độ tinh khiết khác nhau của kim cương, thường được ký hiệu bằng chữ cái (ví dụ: IF, VVS1, VS1, SI1, v.v.).
Trục y: Thể hiện trọng lượng carat trung vị (m) được làm tròn đến 2 chữ số thập phân (round(m, 2)).
Cột màu xanh dương (“blue”): Biểu thị trọng lượng carat trung vị cho mỗi mức độ tinh khiết.
Chú thích văn bản màu đỏ (“red”): Hiển thị trọng lượng carat trung vị chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 2 để tránh chồng chéo lên các cột.
Tựa đề “Median”: Thể hiện trên trục y, cho biết giá trị được hiển thị là trung vị.
d %>% group_by(cut) %>% summarise(m= median(price)) %>%
ggplot(aes(x = cut,y = m)) +
geom_col(position = 'dodge', fill= 'red') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'blue') +
labs(x = 'cut', y = 'Median')
Giải thích câu lệnh :
d %>% group_by(cut) %>% summarise(m = median(price)): Dữ liệu về kim cương được nhóm lại theo chất lượng cắt, sau đó tính toán giá trung vị của kim cương cho mỗi loại chất lượng cắt.
ggplot(aes(x = cut, y = m)): Tạo biểu đồ sử dụng loại chất lượng cắt làm trục x và giá trung vị của kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘red’): Vẽ biểu đồ cột với mỗi cột tương ứng với một loại chất lượng cắt, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu đỏ.
-geom_text(aes(label = round(m,2)), vjust = 2, color = ‘blue’): Thêm văn bản hiển thị giá trung vị của kim cương trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân (round(m,2)) và vị trí văn bản được chỉ định bởi vjust = 2 (để canh chỉnh văn bản sao cho nằm trên cột) và màu văn bản là màu xanh.
-labs(x = ‘cut’, y = ‘Median’): Đặt nhãn cho trục x là ‘cut’ (chất lượng cắt) và trục y là ‘Median’ (giá trung vị).
Kết quả:
Biểu đồ này thể hiện trung vị của giá kim cương theo chất lượng cắt (cut) trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương, từ “Fair” (kém) đến “Ideal” (hoàn hảo).
Trục y: Thể hiện trọng lượng carat trung vị (m) được làm tròn đến 2 chữ số thập phân (round(m, 2)).
Cột màu đỏ (“red”): Biểu thị trọng lượng carat trung vị cho mỗi chất lượng cắt.
Chú thích văn bản màu xanh dương (“blue”): Hiển thị giá kim cương trung vị chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 2 để tránh chồng chéo lên các cột.
Tựa đề “Median”: Thể hiện trên trục y, cho biết giá trị được hiển thị là trung vị.
d %>% group_by(color) %>% summarise(m= median(price)) %>%
ggplot(aes(x = color,y = m)) +
geom_col(position = 'dodge', fill= 'red') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'pink') +
labs(x = 'color', y = 'Median')
Giải thích câu lệnh:
-ggplot(aes(x = color, y = m)): Tạo biểu đồ sử dụng màu sắc làm trục x và giá trung vị của kim cương làm trục y.
-geom_col(position = ‘dodge’, fill= ‘red’): Vẽ biểu đồ cột với mỗi cột tương ứng với một loại màu sắc, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu đỏ.
-geom_text(aes(label = round(m,2)), vjust = 2, color = ‘pink’): Thêm văn bản hiển thị giá trung vị của kim cương trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân (round(m,2)) và vị trí văn bản được chỉ định bởi vjust = 2 (để canh chỉnh văn bản sao cho nằm trên cột) và màu văn bản là màu hồng.
Kết quả:
Biểu đồ này thể hiện trung vị của giá kim cương theo màu sắc (color) trong bộ dữ liệu d .
Các thành phần:
Trục x: Thể hiện các màu sắc khác nhau của kim cương.
Trục y: Thể hiện giá kim cương trung vị (m) được làm tròn đến 2 chữ số thập phân (round(m, 2)).
Cột màu đỏ (“red”): Biểu thị trọng lượng carat trung vị cho mỗi màu sắc.
Chú thích văn bản màu hồng (“pink”): Hiển thị trọng lượng carat trung vị chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 2 để tránh chồng chéo lên các cột.
Tựa đề “Median”: Thể hiện trên trục y, cho biết giá trị được hiển thị là trung vị.
d %>% group_by(clarity) %>% summarise(m= median(price)) %>%
ggplot(aes(x = clarity,y = m)) +
geom_col(position = 'dodge', fill= 'yellow') +
geom_text(aes(label = round(m,2)), vjust = 2, color = 'blue') +
labs(x = 'clarity', y = 'Median')
Giải thích câu lệnh :
d %>% group_by(clarity) %>% summarise(m = median(price)): Dữ liệu về kim cương được nhóm lại theo độ trong suốt, sau đó tính toán giá trung vị của kim cương cho mỗi loại độ trong suốt.
ggplot(aes(x = clarity, y = m)): Tạo biểu đồ sử dụng độ trong suốt làm trục x và giá trung vị của kim cương làm trục y.
geom_col(position = ‘dodge’, fill= ‘yellow’): Vẽ biểu đồ cột với mỗi cột tương ứng với một loại độ trong suốt, được tách biệt bằng cách sử dụng position = ‘dodge’ và màu nền là màu vàng.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘blue’): Thêm văn bản hiển thị giá trung vị của kim cương trên mỗi cột, với giá trị được làm tròn đến hai chữ số sau dấu thập phân (round(m,2)) và vị trí văn bản được chỉ định bởi vjust = 2 (để canh chỉnh văn bản sao cho nằm trên cột) và màu văn bản là màu xanh.
labs(x = ‘clarity’, y = ‘Median’): Đặt nhãn cho trục x là ‘clarity’ (độ trong suốt) và trục y là ‘Median’ (giá trung vị).
Kết quả:
Biểu đồ này thể hiện trung vị giá kim cương carat theo độ tinh khiết (clarity) của kim cương trong bộ dữ liệu d.
Các thành phần:
Trục x: Thể hiện các mức độ tinh khiết khác nhau của kim cương, thường được ký hiệu bằng chữ cái (ví dụ: IF, VVS1, VS1, SI1, v.v.).
Trục y: Thể hiện giá kim cương trung vị (m) được làm tròn đến 2 chữ số thập phân (round(m, 2)).
Cột màu vàng (“yellow”): Biểu thị giá kim cương trung vị cho mỗi mức độ tinh khiết.
Chú thích văn bản màu xanh dươngdương (“blue”): Hiển thị trọng lượng carat trung vị chính xác (được làm tròn) nằm trên đỉnh mỗi cột, được điều chỉnh vị trí bằng vjust = 2 để tránh chồng chéo lên các cột.
Tựa đề “Median”: Thể hiện trên trục y, cho biết giá trị được hiển thị là trung vị.