Giới thiệu về bộ dữ liệu diamonds:

Bộ dữ liệu “diamonds” là một tập dữ liệu phổ biến thường được sử dụng trong phân tích dữ liệu. Bộ dữ liệu này chứa thông tin về các mẫu kim cương, bao gồm các thuộc tính như trọng lượng (carat), giá (price), độ trong suốt (clarity), màu sắc (color), loại cắt (cut), độ sâu (depth), chiều rộng (table), và các kích thước khác (x, y, z).

Thực hiện vẽ biểu đồ

1.Đồ thị thể hiện số lượng kim cương theo biến cut

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
q <- diamonds
q %>% ggplot(aes(x = cut)) +geom_bar()

  • 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
    • 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 đó

2.Đồ thị thể hiện số lượng kim cương theo biến carat

q %>% ggplot(aes(x = carat)) +geom_bar()

câu lệnh này tạo ra một biểu đồ cột thể hiện phân phối của các giá trị trong cột carat của dữ liệu q. Mỗi cột trên biểu đồ đại diện cho một giá trị duy nhất của carat, và chiều cao của cột thể hiện số lần xuất hiện của giá trị đó trong dữ liệu. - Trục x thể hiện kích thước của kim cương - Trục y thể hiện số lượng kim cương tương ứng với mỗi kích thước

3.Đồ thị thể hiện số lượng kim cương theo biến color

q %>% ggplot(aes(x = color)) +geom_bar()

  • Đồ thị thể hiện số lượng kim cương thuộc từng nhóm màu khác nhau trong bộ dữ liệu diamonds
    • Trục x thể hiện các màu sắc của kim cương
    • 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 đó

4.Đồ thị thể hiện số lượng kim cương theo biến clarity

q %>% ggplot(aes(x = clarity)) +geom_bar()

  • 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
    • Trục x thể hiện các cấp độ độ trong suốt kim cương, từ thấp đến cao
    • Trục y thể hiện số lượng kim cương tương ứng với mỗi cấp độ độ trong suố
    • 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 đó

5.Đồ thị thể hiện số lượng kim cương theo biến depth

q %>% ggplot(aes(x = depth)) +geom_bar()

  • Biểu đồ thể hiện số lượng kim cương thuộc từng độ sây khác nhau trong bộ dữ liệu diamonds
    • Trục x thể hiện độ sâu của kim cương
    • Trục y thể hiện số lượng kim cương tương ứng với mỗi độ sâu
    • Chiều cao của mỗi cột thể hiện số lượng kim cương thuộc độ sâu đó

6.Đồ thị thể hiện số lượng kim cương theo biến table

q %>% ggplot(aes(x = table)) +geom_bar()

câu lệnh này tạo ra một biểu đồ cột (bar chart) thể hiện phân phối của các giá trị trong cột table của dữ liệu q. Mỗi cột trên biểu đồ biểu diễn một giá trị duy nhất của table, và chiều cao của cột thể hiện tần suất (số lần xuất hiện) của giá trị đó trong dữ liệu. câu lệnh này tạo ra một biểu đồ cột thể hiện phân phối của các giá trị trong cột table của dữ liệu q. Mỗi cột trên biểu đồ đại diện cho một giá trị duy nhất của table, và chiều cao của cột thể hiện số lần xuất hiện của giá trị đó trong dữ liệu.

7.Đồ thị thể hiện số lượng kim cương theo biến price

q %>% ggplot(aes(x = price)) +geom_bar()

câu lệnh này tạo ra một biểu đồ cột (bar chart) thể hiện phân phối của các giá trị trong cột price của dữ liệu q. Mỗi cột trên biểu đồ biểu diễn một giá trị duy nhất của price, và chiều cao của cột thể hiện tần suất (số lần xuất hiện) của giá trị đó trong dữ liệu.

8.Đồ thị thể hiện số lượng kim cương theo biến x

q %>% ggplot(aes(x = x)) +geom_bar()

9.Đồ thị thể hiện số lượng kim cương theo biến y

q %>% ggplot(aes(x = y)) +geom_bar()

10.Đồ thị thể hiện số lượng kim cương theo biến z

q %>% ggplot(aes(x = z)) +geom_bar()

11.Tạo các biểu đồ con dựa trên giá trị của biến color

q %>% group_by(cut,color) %>% summarise(n=n())%>%ggplot(aes(x = cut,y = n)) +geom_col(position = 'dodge') +facet_wrap(~color) 
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.

Biểu đồ giúp hiểu được phân phối của các loại kim cương (cut) trong từng mức độ màu sắc khác nhau. Mỗi cột trong biểu đồ thể hiện số lượng các loại kim cương (cut) cho mỗi mức độ màu sắc. Đối với mỗi mức độ màu sắc, chúng ta có thể quan sát được sự phân bố của các loại kim cương (cut) là như thế nào. Sự sắp xếp theo màu sắc giúp ta so sánh phân phối của các loại kim cương trong từng mức độ màu sắc, từ đó đánh giá được mức độ ảnh hưởng của màu sắc đối với chất lượng cắt của viên kim cương

12.Tạo các biểu đồ con dựa trên giá trị của biến carat

q %>% group_by(carat,color) %>% summarise(n=n())%>%ggplot(aes(x = carat,y = n)) +geom_col(position = 'dodge') +facet_wrap(~color)
## `summarise()` has grouped output by 'carat'. You can override using the
## `.groups` argument.

câu lệnh này tạo ra một biểu đồ dạng cột thể hiện mối quan hệ giữa khối lượng (carat) và số lượng (n) của các kim cương, được phân loại theo màu sắc (color). Các cột được xếp chồng lên nhau (position = ‘dodge’) và biểu đồ được phân chia thành các nhóm nhỏ dựa trên màu sắc.

13.Tạo các biểu đồ con dựa trên giá trị của biến clarity

q %>% group_by(clarity,color) %>% summarise(n=n())%>%ggplot(aes(x = clarity,y = n)) +geom_col(position = 'dodge') +facet_wrap(~color)
## `summarise()` has grouped output by 'clarity'. You can override using the
## `.groups` argument.

câu lệnh này tạo ra một biểu đồ dạng cột thể hiện mối quan hệ giữa độ trong suốt (clarity) và số lượng (n) của các kim cương, được phân loại theo màu sắc (color). Các cột được xếp chồng lên nhau (position = ‘dodge’) và biểu đồ được phân chia thành các nhóm nhỏ dựa trên màu sắc.

14.Tạo các biểu đồ con dựa trên giá trị của biến depth

q %>% group_by(depth,color) %>% summarise(n=n())%>%ggplot(aes(x = depth,y = n)) +geom_col(position = 'dodge') +facet_wrap(~color)
## `summarise()` has grouped output by 'depth'. You can override using the
## `.groups` argument.

câu lệnh này tạo ra một biểu đồ dạng cột thể hiện mối quan hệ giữa độ sâu (depth) và số lượng (n) của các kim cương, được phân loại theo màu sắc (color). Các cột được xếp chồng lên nhau (position = ‘dodge’) và biểu đồ được phân chia thành các nhóm nhỏ dựa trên màu sắc.

15.Tạo các biểu đồ con dựa trên giá trị của biến table

q %>% group_by(table,color) %>% summarise(n=n())%>%ggplot(aes(x = table,y = n)) +geom_col(position = 'dodge') +facet_wrap(~color)
## `summarise()` has grouped output by 'table'. You can override using the
## `.groups` argument.

câu lệnh này tạo ra một biểu đồ dạng cột thể hiện mối quan hệ giữa độ rộng mặt bàn (table) và số lượng (n) của các kim cương, được phân loại theo màu sắc (color). Các cột được xếp chồng lên nhau (position = ‘dodge’) và biểu đồ được phân chia thành các nhóm nhỏ dựa trên màu sắc.

16.Tạo các biểu đồ con dựa trên giá trị của biến price

q %>% group_by(price,color) %>% summarise(n=n())%>%ggplot(aes(x = price,y = n)) +geom_col(position = 'dodge') +facet_wrap(~color)
## `summarise()` has grouped output by 'price'. You can override using the
## `.groups` argument.

câu lệnh này tạo ra một biểu đồ dạng cột thể hiện mối quan hệ giữa giá (price) và số lượng (n) của các kim cương, được phân loại theo màu sắc (color). Các cột được xếp chồng lên nhau (position = ‘dodge’) và biểu đồ được phân chia thành các nhóm nhỏ dựa trên màu sắc.

17.Biểu đồ thể hiện phân phối của các giá trị

q <- q %>% mutate(caratC = cut(carat,5, label = c('rất nhỏ', 'nhỏ','vừa','lớn','rất lớn')))
q %>% ggplot(aes(x = caratC)) +geom_bar(fill = 'red')

câu lệnh này tạo ra một biểu đồ cột thể hiện phân phối của các giá trị trong cột mới caratC, được tạo ra bằng cách chia giá trị của cột carat thành 5 nhóm khác nhau. Cột caratC được sử dụng trên trục x của biểu đồ, và màu fill của các cột được thiết lập là màu đỏ.

18.Biểu đồ thể hiện số lượng mỗi loại cắt

q <- q %>% group_by(cut, color) %>% summarise(n = n())
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
q %>% ggplot(aes(x = cut, y = n)) +
  geom_col(data = q %>% filter(color == 'D'), fill = 'red') +
  geom_col(data = q %>% filter(color == 'J'), fill = 'blue')

câu lệnh này tạo ra một biểu đồ dạng cột thể hiện số lượng của mỗi loại cắt (cut), được phân loại theo màu sắc (color). Các cột có màu đỏ hoặc xanh tương ứng với các giá trị cụ thể của color.

19.Biểu đồ thể hiện giá trị trung bình trọng lượng carat theo màu sắc kim cương

q <- diamonds
q %>% group_by(color) %>% summarise(k= mean(carat)) %>% ggplot(aes(color,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') 

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của khối lượng kim cương (carat) cho mỗi màu sắc. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các màu sắc của kim cương. - Trục y: Thể hiện giá trị trung bình trọng lượng carat

20.Biểu đồ cột thể hiện giá trị trung bình trọng lượng carat theo chất lượng cắt kim cương

q %>% group_by(cut) %>% summarise(k= mean(carat)) %>%
  ggplot(aes(cut,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
    labs(x = 'Chất lượng cắt', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của khối lượng (carat) cho mỗi loại cắt (cut). Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương - Trục y: Thể hiện giá trị trung bình trọng lượng carat

21.Biểu đồ cột thể hiện giá trị trung bình trọng lượng carat theo độ trong suốt của kim cương

q %>% group_by(clarity) %>% summarise(k= mean(carat)) %>%
  ggplot(aes(clarity,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
    labs(x = 'Màu', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của khối lượng (carat) cho mỗi loại clarity (độ trong suốt). Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các độ trong suốt khác nhau của kim cương - Trục y: Thể hiện giá trị trung bình trọng lượng carat

22.Biểu đồ thể hiện giá trị trung bình giá bán theo màu sắc kim cương

q %>% group_by(color) %>% summarise(k= mean(price)) %>%
  ggplot(aes(color,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
    labs(x = 'Màu', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của giá cho mỗi loại màu. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - 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á trị trung bình giá bán

23.Biểu đồ thể hiện giá trị trung bình giá bán theo chất lượng cắt

q %>% group_by(cut) %>% summarise(k= mean(price)) %>%
  ggplot(aes(cut,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
    labs(x = 'Chất lượng cắt', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của giá cho mỗi loại cắt. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương - Trục y: Thể hiện giá trị trung bình giá bán

24.Biểu đồ thể hiện giá trị trung bình giá bán theo độ trong suốt

q %>% 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')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của giá cho mỗi mức độ trong suốt của kim cương. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các độ trong suốt khác nhau của kim cương - Trục y: Thể hiện giá trị trung bình giá bán

25.Biểu đồ cột thể hiện phương sai giá bán theo màu sắc kim cương

q %>% group_by(color) %>% summarise(k= var(price)) %>%
  ggplot(aes(color,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
    labs(x = 'Màu', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị phương sai của giá cho mỗi loại màu của kim cương. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - 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 phương sai của giá bán

26.Biểu đồ cột thể hiện phương sai giá bán theo chất lượng cắt

q %>% group_by(cut) %>% summarise(k= var(price)) %>%
  ggplot(aes(cut,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 1, color = 'black') +
    labs(x = 'Chất lượng cắt', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị phương sai của giá cho mỗi loại chất lượng cắt của kim cương. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương - Trục y: Thể hiện phương sai của giá bán

27.Biểu đồ cột thể hiện phương sai giá bán theo độ trong suốt

q %>% group_by(clarity) %>% summarise(k= var(price)) %>%
  ggplot(aes(clarity,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,2)),vjust = 0.85, color = 'black') +
    labs(x = 'Độ trong suốt', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện phương sai của giá cho mỗi mức độ trong suốt của kim cương. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các độ trong suốt khác nhau của kim cương - Trục y: Thể hiện phương sai của giá bán

28.Biểu đồ cột thể hiện phương sai trọng lượng carat theo chất lượng cắt

q %>% group_by(cut) %>% summarise(k= var(carat)) %>%
  ggplot(aes(cut,k)) +
    geom_col(fill='red') + 
    geom_text(aes(label = round(k,3)),vjust = 1, color = 'black') +
    labs(x = 'Chất lượng cắt', y = 'Số lượng')

câu lệnh này tạo ra một biểu đồ cột thể hiện phương sai của trọng lượng carat cho mỗi loại chất lượng cắt của kim cương. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các chất lượng cắt khác nhau của kim cương - Trục y: Thể hiện phương sai của trọng lượng carat

29.Biểu đồ cột thể hiện phương sai trọng lượng carat theo độ trong suốt

q %>% group_by(clarity) %>% summarise(k= var(carat)) %>%
  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')

câu lệnh này tạo ra một biểu đồ cột thể hiện phương sai của trọng lượng carat cho mỗi mức độ trong suốt của kim cương. Các cột được tô màu đỏ và có nhãn số liệu đính kèm. - Trục x: Thể hiện các độ trong suốt khác nhau của kim cương - Trục y: Thể hiện phương sai của trọng lượng carat

30.Biểu đồ cột kép theo cut phân tách theo color, thể hiện giá trung bình

q %>% group_by(cut,color) %>% summarise(k =mean(price)) %>%
  ggplot(aes(x = cut,y = k)) +
    geom_col(position = 'dodge', fill= 'blue') +
    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.

câu lệnh này tạo ra một biểu đồ cột thể hiện giá trị trung bình của giá cho mỗi loại cắt của kim cương, được phân loại theo màu. Các cột được tô màu xanh và có nhãn số liệu đính kèm.