diamonds là dữ liệu về các thuộc tính của gần 54000 viên kim cương. Bộ dữ liệu gồm 53940 quan sát tương ứng số viên kim cương được phân tích và 10 biến với các thuộc tính sau:
Carat: trong lượng của viên kim cương (từ 0,2 đến 5,01)
Cut: chất lượng của các vết cắt (Fair, Good, Very good, Premium, Ideal )
Color: màu sắc của các viên kim cương (từ màu D [tốt nhất] đến màu J [tệ nhất])
Clarity: độ trong của kim cương(I1 [tệ nhất], SI2, SI1, VS2, VS1, VVS2, VVS1, IF [tốt nhất])
Depth: độ sâu viên kim cương
Table: chiều rộng của đỉnh kim cương so với điểm rộng nhất (từ 43 đến 95)
Price: giá được tính bằng đô la Mỹ
X: chiều dài, tính bằng mm (từ 0 đến 10,74)
Y: chiều rộng, tính bằng mm (từ 0 đến 58,9)
Z : chiều sâu, tính bằng mm (từ 0 đến 31,8)
nv4$carat1 <- case_when(nv4$carat < 1 ~ 'Siêu nhỏ',
nv4$carat >= 1 & nv4$carat < 2 ~ 'Nhỏ',
nv4$carat >= 2 & nv4$carat < 3 ~ 'Trung bình',
nv4$carat >= 3 & nv4$carat < 4 ~ 'Lớn',
nv4$carat >= 4 & nv4$carat < 5 ~ 'Rất lớn',
nv4$carat >= 5 ~ ' Cực lớn')
Đoạn chuck trên dùng để phân loại kim cương theo trọng lượng, để bắt đầu tạo một cột mới có tên là carat1 trong dataframe nv4 thông qua hàm Case_when. Công thức cơ bản của hàm được sử dụng trong mã code trên là:
**case_when(dieukien1 ~ giatri1, dieukien2 ~ giatri2,...)**
Trong đó:
dieukien1 là điều kiện để mã hóa dữ liệu
giatri1 là giá trị được trả về vơi điều kiện tương ứng
Sau cùng, kết quả của các điều kiện trên sẽ được lưu vào cột mới là carat1. Điều này tạo ra một biến phân loại dựa trên giá trị của biến carat, giúp phân chia kim cương thành các nhóm dựa trên trong lượng của chúng. 6 loại kim cương sẽ được phân loại như sau:
Các kim cương có trọng lượng nhỏ hơn 1 thuộc loại Siêu nhỏ
Các kim cương có trọng lượng lớn hơn hoặc bằng 1 và nhỏ hơn 2 thuộc loại Nhỏ
Các kim cương có trọng lượng lớn hơn hoặc bằng 2 và nhỏ hơn 3 thuộc loại Trung bình
Các kim cương có trọng lượng lớn hơn hoặc bằng 3 và nhỏ hơn 4 thuộc loại Lớn
Các kim cương có trọng lượng lớn hơn hoặc bằng 4 và nhỏ hơn 5 thuộc loại Rất lớn
Các kim cương có trọng lượng lớn hơn 5 thuộc loại Cực lớn
nv4 %>% ggplot(aes(x = carat1)) +
geom_bar() +
labs(x = 'Loại', y = 'Số lượng', title = 'Số lượng các viên kim cương theo trọng lượng')
Một biểu đồ dạng cột được vẽ từ dữ liệu nv4:
ggplot(aes(x = carat1)): Hàm ggplot để tạo một khung biểu đồ và aes được sử dụng để ánh xạ giữa dữ liệu và các yếu tố trực quan (như trục x, trục y). Trong trường hợp này, biểu đồ sẽ vẽ trục hoành tương ứng với các giá trị của biến carat1
geom_bar(): Dùng để vẽ đồ thị, hiển thị dưới dạng cột
labs(x = ‘Loại’, y = ‘Số lượng’, title = ‘Số lượng các viên kim cương theo trọng lượng’): Hàm này được sử dụng để đặt nhãn cho trục và tiêu đề của biểu đồ. Đặt nhãn cho trục x là ‘Loại’, y là ‘Số lượng’ và title là ‘Số lượng các viên kim cương theo trọng lượng’ đặt tiêu đề cho biểu đồ
Biểu đồ cột về Số lượng các viên kim cương theo trọng lượng như sau:
6 cột, tương đương với 6 loại kim cương được phân loại (Cực lớn, Lớn, Nhỏ, Rất lớn, Siêu nhỏ, Trung bình)
Trục hoành là loại các kim cương
Trục tung là số lượng kim cương tưng ứng với mỗi loại sau khi phân loại
nv4 %>% ggplot(aes(x = carat1)) +
geom_bar() +
labs(x = 'Loại', y = 'Số lượng', title = 'Số lượng các viên kim cương theo trọng lượng') +
coord_flip()
Biểu đồ trên cũng tương tự biểu đồ đầu tiên nhưng nó được đổi vị trí nhờ hàm coord_flip(), khi được áp dụng, trục x sẽ trở thành trục y và ngược lại trục y thành trục x, từ đó thay đổi hướng của biểu đồ, biến biểu đồ cột dọc thành biểu đồ cột ngang.
nv4 %>% group_by(carat1) %>% summarise(n = n()) %>%
ggplot(aes(carat1,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = (-0.5), color = 'brown') +
labs(x = 'Loại', y = 'Số lượng', title = 'Số lượng các viên kim cương theo trọng lượng')
Đây là biểu đồ cụ thể hơn của hai biểu trên:
group_by(carat1): Nhóm dữ liệu theo giá trị, kết quả là một tập dữ liệu mới trong đó các dòng đã được nhóm lại dựa trên giá trị của cột carat1
summarise(n = n()): Tính số lượng (n) cho mỗi giá trị trong carat1
ggplot(aes(carat1, n)): Tạo một khung biểu đồ với trục x là giá trị trong biến carat1 và trục y là số lượng (n) đếm được
geom_col(fill = ‘green’): Tạo biểu đồ cột với màu nền là xanh lá cây
geom_text(aes(label = n), vjust = -0.5, color = ‘brown’): Hiển thị số lượng (n) trên từng cột với chữ màu nâu và điều chỉnh vị trí văn bản (vjust) là (-0.5)
labs(…): Đặt nhãn cho trục và tiêu đề của biểu đồ (giống với hai biểu đồ đã vẽ ở trên)
Biểu đồ về Số lượng các viên kim cương theo trọng lượng có:
Có 1 viên kim cương được xếp vào loại là Cực lớn
Có 34 viên kim cương được xếp vào loại là Lớn
Có 16906 viên kim cương được xếp vào loại là Nhỏ
Có 5 viên kim cương được xếp vào loại là Rất lớn
Có 34880 viên kim cương được xếp vào loại là Siêu nhỏ
Số lượng còn lại là 2114 viên kim cương là loại Trung bình
nv4 %>% group_by(carat1,cut) %>% summarise(n=n(),.groups='drop') %>%
ggplot(aes(x = carat1,y = n)) +
geom_col(position = 'dodge', fill = 'green') +
facet_wrap(~cut) +
labs(x = 'Loại', y = 'Số lượng', title = 'Phân phối số lượng các viên kim cương theo loại cắt và carat')
Đây là biểu đồ phân tích theo khối lượng (carat) trên từng loại cắt của kim cương
Nhóm cả hai biến Carat1 và cut sau đó tính số lượng (n) qua nv4 %>% group_by(carat1,cut) %>% summarise(n=n(),.groups=‘drop’)
Với trục x là các loại khối lương kim cương và y là số lượng đếm được ở mỗi loại ggplot(aes(x = carat1,y = n))
geom_col(position = ‘dodge’, fill = ‘green’) dùng để xác định các cột sẽ được đặt cạnh nhau trên trục x, trong trường hợp này, ‘dodge’ nghĩa là các cột sẽ được tách biệt và không chồng lên nhau và các màu sắc của cột sẽ có màu xanh
Facet_wrap dùng để tách biểu đồ dựa thành các biểu đồ nhỏ hơn dựa vào phân loại các vết cắt
nv4 %>% ggplot(aes(x = price, fill = carat1)) + geom_histogram(binwidth = 500) + labs(title ='Biểu đồ về giá qua trọng lượng kim cương')
ggplot(aes(x = price, fill = carat1)): Khởi tạo một đối tượng ggplot với trục x là “price” và màu sắc chú thích được xác định bởi trường dữ liệu “carat1”.
geom_histogram(binwidth = 500): Vẽ biểu đồ Histogram. Tham số binwidth = 500 xác định kích thước của các bin (phần tử trên trục x) trong histogram là 500.
nv4 %>% group_by(cut) %>% summarise(n = n()) %>%
ggplot(aes(cut,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = (-0.5), color = 'brown') +
labs(x = 'Loại', y = 'Số lượng', title = 'Số lượng các viên kim cương qua chất lượng vết cắt')
Trong đoạn mã này:
nv4 %>% group_by(cut) %>% summarise(n = n()): Đoạn này sử dụng để nhóm dữ liệu theo giá trị của cột cut và sau đó tạo một bảng tóm tắt (summarise) với cột mới là n, biểu thị số lượng dòng (hoặc quan sát) trong mỗi nhóm cut
ggplot(aes(cut, n)): Tạo biểu đồ với trục x là cut và trục y là n. Hàm aes() được sử dụng để ánh xạ các biến trong dữ liệu vào các yếu tố trực quan trong biểu đồ
Một biểu đồ về Số lượng các viên kim cương qua chất lượng vết cắt được vẽ:
nv4 %>% group_by(cut) %>% summarise(n = n()) %>% mutate(percentage = round((n / sum(n)) * 100, 1)) %>%
ggplot(aes(cut, percentage)) +
geom_col(fill = 'green') +
geom_text(aes(label = scales::percent(percentage/100)), vjust = -0.5, color = 'brown') +
labs(x = 'Loại', y = 'Phần trăm', title = 'Phần trăm các viên kim cương qua chất lượng vết cắt')
Trong đoạn mã trên:
nv4 %>% group_by(cut) %>% summarise(n = n()) %>% mutate(percentage = round((n / sum(n)) * 100, 1)): trong code này, từ dữ liệu nv4 nhóm các loại trong biến cut sau đó tóm tắt số lượng (n). Tiếp theo tính phần trăm bằng cách chia số lượng ở từng loại cho tổng số lượng, sau đó nhân với 100 để tính ra chỉ số phần trăm và làm tròn với một chữ số thập phân
aes(cut, percentage) vẽ các loại kim cương ở trục x và tỷ lệ phần trăm trên trục y
Giống các biểu đồ trên, các cột biểu đồ đều có màu nền là xanh lá cây qua lệnh geom_col(fill = ‘green’)
geom_text(aes(label = scales::percent(percentage/100)), vjust = -0.5, color = ‘brown’): thêm văn bản trên cột biểu đồ với nhãn được định dạng bằng hàm scales::percent(), sau đó chia cho 100 để giá trị hiển thị ở đúng dạng phần trăm
Nhãn cho trục hoành (x) là Phần trăm, cho trục tung (y) là Loại và tiêu đề của biểu đồ là Phần trăm các viên kim cương qua chất lượng vết cắt
Với mã trên ta thấy được rõ các phần trăm viên kim cương được phân tích.
Trong 53940 viên kim cương được đánh giá thì kim cương có vết cắt Fair chiếm số lượng ít nhất, chỉ 3%
Có nhiều nhất là 40% viên kim cương có vết cắt là Idealtmp <- diamonds
a <- nv4 %>% group_by(cut, color) %>% summarise(n = n(), .groups ='drop')
ggplot(a,aes(x = cut, y = n)) +
geom_col(data = a %>% filter(color == 'D'), fill = 'red') +
geom_col(data = a %>% filter(color == 'J'), fill = 'blue') + labs(title=' Biểu đồ so sánh màu D và J qua vết cắt')
Giải thích chuck:
a <- nv4 %>% group_by(cut, color) %>% summarise(n = n(), .groups =‘drop’): nhóm dữ liệu theo cột ‘Cut’ và cột ‘Color’, tính toán số lượng mỗi nhóm và tạo cột với tên là ‘n’. Sau đó tất cả tạo một dataframe tên là ‘a’
ggplot(a, aes(x = cut, y = n)): tạo đối tượng ggplot với trục x là “cut” và trục y là “n” từ dataframe a.
geom_col(data = a %>% filter(color == ‘D’), fill = ‘red’): biểu đồ với màu sắc xanh cho dữ liệu của màu “D”
geom_col(data = a %>% filter(color == ‘J’), fill = ‘blue’): biểu đồ với màu sắc xanh cho dữ liệu của màu “J”.
Giải thích biểu đồ:
Biểu đồ so sánh màu D và J qua các vết cắt
Mỗi cột trong biểu đồ sẽ đại diện cho một nhóm được xác định bởi “cut” và màu sắc (“D” hoặc “J”)
b <- nv4 %>% group_by(cut, color) %>% summarise(n = n(), .groups ='drop')
ggplot(b,aes(x = cut, y = n)) +
geom_col(data = b %>% filter(color == 'D'), fill = 'red') +
geom_col(data = b %>% filter(color == 'I'), fill = 'blue')+ labs(title='Biểu đồ so sánh màu D và I qua vết cắt')
Tương tự ta có biểu đồ về màu D và I
c <- nv4 %>% group_by(cut, color) %>% summarise(n = n(), .groups ='drop')
ggplot(b,aes(x = cut, y = n)) +
geom_col(data = c %>% filter(color == 'I'), fill = 'red') +
geom_col(data = c %>% filter(color == 'J'), fill = 'blue')+ labs(title='Biểu đồ so sánh màu I và J qua vết cắt')
Biểu đồ so sánh màu I và J qua vết cắt
nv4 %>% ggplot(aes(x = price, fill = cut)) + geom_histogram(binwidth = 500)+ labs(title ='Biểu đồ về giá qua các vết cắt kim cương')
nv4 %>% group_by(color) %>% summarise(n = n()) %>%
ggplot(aes(color,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = (-0.5), color = 'brown') +
labs(x = 'Loại', y = 'Số lượng', title = 'Phân loại kim cương theo màu sắc')
Biều đồ dạng cột về số lượng các loại kim cương sau khi phân chia theo màu sắc.
Sau khi nhóm dữ liệu từ biến color từ dữ liệu nv4 thì tính tổng các viên kim cương có trong mỗi loại và vẽ biểu đồ
Ánh xạ số lượng đếm được trên trục tung và các loại màu với trục hoành
Các bước còn lại tương tự với các biểu đồ đã thực hiện phía trên
Đoạn mã tạo ra một biểu đồ cột như sau:
-7 cột tương ứng với 7 màu sắc được phân tích từ các viên kim cương
Biều đồ cho thấy sự đa dạng về màu sắc của các viên kim cương
Màu I và J là hai loại màu có số lượng thấp nhất, lần lượt là 5422 và 2808 viên
Chiếm số lượng nhiều nhất là kim cương có màu G với 11292 viên
nv4 %>% group_by(cut,color) %>% summarise(n=n()) %>%
ggplot(aes(x = cut,y = n)) +
geom_col(position = 'dodge', fill = 'green') +
facet_wrap(~color) +
labs(x = 'Loại', y = 'Số lượng', title = 'Phân phối số lượng các viên kim cương theo loại cắt và màu sắc')
## `summarise()` has grouped output by 'cut'. You can override using the `.groups`
## argument.
Giải thích về đoạn mã:
group_by(cut, color) %>% summarise(n = n()): nhóm dữ liệu theo cả biến cut và color để tính tổng số lượng (n) cho mỗi cặp loại cắt và màu sắc khác nhau
geom_col(position = ‘dodge’, fill = ‘green’): sử dụng geom_col để vẽ biểu đồ cột với mỗi cột đại diện cho một loại cắt (cut), position = ‘dodge’ để tạo ra các cột được đặt cạnh nhau cho mỗi loại cut. Màu nền của cột được thiết lập thành xanh lá cây
facet_wrap(~color): sử dụng facet_wrap để tách biểu đồ thành nhiều biểu đồ nhỏ dựa trên màu sắc (color). Mỗi biểu đồ con sẽ hiển thị phân phối của cut cho một màu sắc cụ thể
labs(x = ‘Loại’, y = ‘Số lượng’, title = ‘Phân phối số lượng các viên kim cương theo loại cắt và màu sắc’): đặt nhãn cho trục x và trục y và tạo tiêu đề cho biểu đồ
Về biểu đồ:
Biểu đồ lớn bao gồm 7 biểu đồ nhỏ, tương ứng với 7 màu sắc của kim cương
Trong đó ở mổi biểu đồ nhỏ sẽ phân tích các số lượng kim cương theo vết cắt
Cụ thể hơn, ở biểu đồ nhỏ đầu tiên, ta xem xét trong màu D, các viên kim cương được cắt như thế nào và có số lượng theo từng loại ra sao
nv4 %>% 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 = 'green') +
labs(x = 'Color', y = 'Mean', title = 'Giá trị trung bình trọng lượng carat của kim cương trong từng mức độ màu sắc')
Đoạn chuck dùng vẽ biểu đồ cột:
Từ dataframe nv4, nhóm các giá trị trong biến color bằng hàm Group_by sau đó tính mean (giá trị trung bình) của biến carat dựa theo các màu sắc đã nhóm
Vẽ biểu đồ cột với ánh xạ trục x là các loại màu và trục y là mean tính được
geom_col(position = ‘dodge’): Thêm lớp cột vào biểu đồ, với dữ liệu được nhóm theo “color”. Tham số position = ‘dodge’ tạo cột tách biệt cho mỗi nhóm màu.
geom_text(aes(label = round(m,2)), vjust = 2, color = ‘green’) : Thêm văn bản vào biểu đồ để hiển thị giá trị trung bình. Văn bản này được đặt ở vị trí trên đỉnh mỗi cột với màu xanh lá cây.
Qua biểu đồ ta nhận xét được, ở mỗi màu khác nhau, các kim cương sẽ có một giá trị carat trung bình tương ứng:
Các kim cương ở nhóm màu D có giá trị trung bình là 0.66 carat
Kim cương màu E cũng có giá trị trung bình là 0.66 carat
Kim cương màu J với giá trị trung bình là 1.16 carat
nv4 %>% ggplot(aes(x = price, fill = color)) + geom_histogram(binwidth = 500) + labs(title ='Biểu đồ về giá qua màu sắc của kim cương')
nv4 %>% group_by(clarity) %>% summarise(n = n()) %>%
ggplot(aes(clarity,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = (-0.5), color = 'brown') +
labs(x = 'Loại', y = 'Số lượng', title = 'Phân loại kim cương theo độ trong trẻo')
Biểu đồ dạng cột được vẽ tương tự với các biểu đồ đã vẽ ở trên, nhóm các giá trị trong biến clarity và vẽ biểu đồ cột
Biểu đồ gồm 8 cột, tương đương với 8 độ trong khác nhau của kim cương
Ba loại thấp nhất là I1, IF và VVS1 lần lượt có số lượng là 741, 1790 và 3655
Hai loại có số lượng kim cương nhiều nhất là SI1 và VS2 với 13065 và 12258 viên
nv4 %>% ggplot(aes(x = price, fill = clarity)) + geom_histogram(binwidth = 500) +labs(title ='Biểu đồ về giá qua độ trong của kim cương')
nv4$depth1 <- case_when(nv4$depth < 50 ~ 'Không tốt',
nv4$depth >= 50 & nv4$depth < 60 ~ 'Vừa',
nv4$depth >= 60 & nv4$depth < 70 ~ 'Tốt',
nv4$depth >= 70 ~ 'Rất tốt')
Phân loại các độ sâu của kim cương qua hàm Case_when:
Độ sâu bé hơn 50 thuộc loại Không tốt
Độ sâu từ 50 đến 60 là loại Vừa
Độ sâu từ 60 đến 70 là lại Tốt
Độ sâu lớn hơn 70 thuộc loại Rất tốt
nv4 %>% group_by(depth1) %>% summarise(n = n()) %>%
ggplot(aes(depth1,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = (-0.5), color = 'brown') +
labs(x = 'Loại', y = 'Số lượng', title = 'Số lượng các viên kim cương qua độ sâu')
Một biểu đồ có tên là ‘Số lượng các viên kim cương qua độ sâu’:
Biểu đồ thể hiện số lượng các viên kim cương sau khi phân loại
Gồm 4 cột ứng với 4 loại
Số lượng kim cương thuộc loại Tốt là nhiều nhất, có 48802 viên
Thấp nhất là loại Không tốt và Rất tốt
nv4 %>% ggplot(aes(x = price, fill = depth1)) + geom_histogram(binwidth = 500) + labs(title ='Biểu đồ về giá qua độ sâu của kim cương')
nv4$table1 <- case_when(nv4$table < 50 ~ 'Không tốt', nv4$table >= 50 & nv4$table < 60 ~ 'Vừa', nv4$table >= 60 & nv4$table < 70 ~ 'Tốt', nv4$table >= 70 ~ 'Rất tốt')
nv4 %>% group_by(table1) %>% summarise(n = n()) %>%
ggplot(aes(table1,n)) +
geom_col(fill='green') +
geom_text(aes(label = n),vjust = (-0.5), color = 'brown') +
labs(x = 'Loại', y = 'Số lượng', title = 'Số lượng kim cương qua phân loại chiều rộng đỉnh so với điểm rộng nhất')
Tương tự biểu đồ về chiều rộng đỉnh so với điểm rộng nhất của các viên kim cương sau khi phân loại như sau:
Có 4 viên kim cương được xếp vào loại Không tốt
17 viên thuộc loại Rất tốt
9070 viên ở loại Tôt
Và nhiều nhất 44849 viên ở loại vừa
nv4 %>% ggplot(aes(x = price, fill = table1)) + geom_histogram(binwidth = 500) + labs(title ='Biểu đồ về giá qua chiều rộng của đỉnh kim cương so với điểm rộng nhất của kim cương')
nv4 %>% ggplot(aes(x = price)) +
geom_histogram(binwidth = 2000, fill = 'lightblue', color = 'black') + labs(title = 'Giá các loại kim cương')
Giá của các loại kim cương thông qua biểu đồ histogram:
nv4 %>%: Đây là cú pháp của gói dplyr trong R, được sử dụng để áp dụng các hàm dplyr lên dataframe “nv4”. Toán tử %>% được sử dụng để chuyển kết quả của một hàm thành đối số cho hàm tiếp theo.
ggplot(aes(x = price)): Sử dụng ggplot2 để tạo biểu đồ. Hàm ggplot() khởi tạo một đối tượng ggplot với dữ liệu từ dataframe “nv4”. Hàm aes(x = price) thiết lập mối quan hệ giữa trường dữ liệu price và trục x của biểu đồ.
geom_histogram(binwidth = 2000, fill = ‘lightblue’, color = ‘black’): Hàm này dùng vẽ biểu đồ Histogram. Binwidth = 2000 : Thiết lập kích thước của các bước nhảy trong histogram là 2000. Fill = ‘lightblue’: Đặt màu sắc cho các cột của histogram là màu xanh nhạt và color = ‘black’: Đặt màu viền của các cột là màu đen.
Với bước nhảy là 2000, biểu đồ có nghĩa là:
Ở cột đầu tiên, các kim cương có giá giao động từ 0 đến 2000 đô có khoảng gần 15000 viên
Cột thứ hai, ở giá từ 2000 đến 4000 có hơn 15000 viên, tương tự các cô còn lại với các mức giá tăng lên 2000 đô
nv4 %>% ggplot(aes(x = price)) +
geom_histogram(binwidth = 1500, fill = 'lightblue', color = 'black') + labs(title = 'Giá các loại kim cương')
Tương tự biểu đồ trên, đây là biểu đồ với bước nhảy là 1500 (binwith=1500)
Các cột trong biểu đồ có bước nhảy nhỏ hơn, tương đương mức giá được chia sẽ nhỏ hơn.
Ta thấy được các mức giá đều được chia có sự chênh lệch
Ở giá từ 1500 đến 3000 có nhiều kim cương nhất, sau đó giảm dần với các mức giá tiếp theo
nv4 %>% ggplot(aes(x = price)) +
geom_histogram(binwidth = 1000, fill = 'blue', color = 'red') +
facet_wrap(~cut) + labs(title = 'Phân tích giá qua từng vết cắt')
nv4 %>% ggplot(aes(x = x)) +
geom_histogram(binwidth = 0.1, fill = 'lightblue', color = 'black') + labs(title = 'Chiều dài của các viên kim cương')
Qua biểu đồ ta thấy chiều dài của các viên kim cương phân bố không đồng đều
Kim cương có chiều dài gần 4mm chiếm số lượng nhiều nhất
nv4 <- nv4 %>% mutate(x1 = cut(x,3, label = c('ngắn', 'vừa', 'dài')))
nv4 %>% ggplot(aes(x = x1)) +
geom_bar(fill = 'red') + labs(title = 'Chiều dài của các viên kim cương qua phân loại')
mutate(x1 = cut(x, 3, labels = c(‘ngắn’, ‘vừa’, ‘dài’)): Thêm một cột mới “x1” vào dataframe nv4. Giá trị của cột “x” được phân loại thành 3 nhóm với nhãn tương ứng là ‘ngắn’, ‘vừa’, và ‘dài’
ggplot(aes(x = x1)): tạo đối tượng ggplot với trục x là cột “x1”
geom_bar(fill = ‘red’): thêm lớp cột vào biểu đồ với màu sắc đỏ
labs(title = ‘Chiều dài của các viên kim cương qua phân loại’): đặt tiêu đề cho biểu đồ
nv4 %>% ggplot(aes(x = y)) +
geom_histogram(binwidth = 0.5, fill = 'lightblue', color = 'black') + labs(title = 'Chiều rộng của các viên kim cương')
nv4 <- nv4 %>% mutate(y1 = cut(y,3, label = c('hẹp', 'vừa', 'rộng')))
nv4 %>% ggplot(aes(x = y1)) +
geom_bar(fill = 'red') + labs(title = 'Chiều dài của các viên kim cương qua phân loại')
nv4 %>% ggplot(aes(x = z)) +
geom_histogram(binwidth = 0.5, fill = 'lightblue', color = 'black') + labs(title = 'Chiều sâu của các viên kim cương')
nv4 <- nv4 %>% mutate(z1 = cut(z,3, label = c('nông', 'vừa', 'sâu')))
nv4 %>% ggplot(aes(x = z1)) +
geom_bar(fill = 'red') + labs(title = 'Chiều sâu của các viên kim cương qua phân loại')