1. Giới thiệu ggplot2
ggplot2
là một trong những thư viện trực quan hoá dữ liệu phổ biến nhất trong ngôn ngữ R. Nó được phát triển bởi Hadley Wickham và dựa trên ý tưởng của "Grammar of Graphics". ggplot2
cho phép bạn tạo ra các biểu đồ chất lượng cao và tùy chỉnh chúng để hiển thị dữ liệu theo cách bạn mong muốn.
1# Cài thư viện ggplot2
2install.packages("ggplot2")
3
4# Load thư viện ggplot2
5library(ggplot2)
2. Giới thiệu dataset mtcars
Trước khi bắt đầu vẽ biểu đồ, chúng ta sẽ sử dụng dataset mtcars
có sẵn trong R. Dataset này chứa thông tin về các xe hơi, bao gồm các biến như mức tiêu thụ nhiên liệu (mpg), số lượng xi-lanh (cyl), công suất (hp), và nhiều biến khác.
1# Xem một số dòng đầu của dataset mtcars
2head(mtcars)
![](https://cdn.sanity.io/images/rjcymabl/production/c5e0a59a99573a270b63a61cb3016476ae0488de-1458x364.png?w=750)
1# Thông tin của dataset mtcars
2help(mtcars)
![](https://cdn.sanity.io/images/rjcymabl/production/81913c076ebe06dc984e7bf25be554f574f271a7-876x644.png?w=750)
3. Tạo biểu đồ scatter
cơ bản
Chúng ta sẽ bắt đầu bằng việc tạo một biểu đồ scatter plot đơn giản để biểu diễn mối quan hệ giữa mức tiêu thụ nhiên liệu (mpg
) và công suất mã lực (hp
) của các xe hơi trong dataset.
1# Tạo biểu đồ scatter plot
2ggplot(data = mtcars, aes(x = mpg, y = hp)) +
3 geom_point()
![](https://cdn.sanity.io/images/rjcymabl/production/0cac220154a266c0f8f436fbc671259d47b626f1-2070x1161.png?w=750)
Cú pháp rất đơn giản, đầu tiên ta khai báo biểu đồ bằng hàm ggplot()
với các thông số về dataset, các trục x và y. Sau đó cộng hàm geom_point()
với ngụ ý là vẽ biểu đồ chấm từ thông số đã được khai báo từ hàm ggplot()
.
4. Tinh chỉnh màu sắc
Bạn có thể tinh chỉnh màu sắc của các điểm trên biểu đồ bằng cách sử dụng tham số color
trong hàm aes
.
1# Biểu đồ scatter với màu khác
2ggplot(data = mtcars, aes(x = mpg, y = hp)) +
3 geom_point(color = "steelblue")
![](https://cdn.sanity.io/images/rjcymabl/production/72bda992bb5531604d79855987ff909039e65ec1-2070x1161.png?w=750)
5. Layer trong ggplot2, vẽ scatter plot kết hợp với đường hồi quy
Điểm đặc biệt của ggplot2 là ta có thể vẽ chồng cùng lúc các đồ thị lên nhau một các dễ dàng theo cơ chế layer bằng cách dùng dấu +
. Hãy thêm một layer đường hồi quy vào biểu đồ scatter plot hiện tại.
Ta sử dụng hàm geom_smooth()
với method="lm"
là sử dụng phương pháp hồi quy tuyến tính và se=FALSE
để không vẽ miền khoảng tin cậy. Ta được kết quả như bên dưới
1# Biểu đồ scatter với màu khác
2ggplot(data = mtcars, aes(x = mpg, y = hp)) +
3 geom_point(color = "steelblue") +
4 geom_smooth(method = "lm", se = FALSE)
![](https://cdn.sanity.io/images/rjcymabl/production/d720182117bba24d48f221710e86a3444e8b1f6d-2070x1161.png?w=750)
6. Thay đổi màu của các chấm theo phân loại xe
Để thay đổi màu của các chấm dựa trên các nhóm xe hơi, ví dụ ở đây là xe số sàn và xe số tự động với 0 là số tự động và 1 là số sàn bạn có thể khai báo tại hàm aes()
1# Biểu đồ scatter với màu sắc theo nhóm xe
2ggplot(data = mtcars, aes(x = mpg, y = hp)) +
3 geom_point(aes(color = factor(am)))
![](https://cdn.sanity.io/images/rjcymabl/production/f1623c51195e4a22535297a301d7d24dfbb1100f-2070x1161.png?w=750)
7. Thay đổi kích thước của các chấm theo khối lượng xe
Chúng ta cũng có thể điều chỉnh kích thước của các chấm dựa trên thông tin về khối lượng xe bằng cách sử dụng tham số size
.
1# Biểu đồ scatter với kích thước theo khối lượng xe
2ggplot(data = mtcars, aes(x = mpg, y = hp)) +
3 geom_point(
4 aes(
5 color = factor(am),
6 size=wt
7 )
8 )
![](https://cdn.sanity.io/images/rjcymabl/production/92349118ac75ee2b979777625a04661f08d30115-2070x1161.png?w=750)
8**. Thay đổi title và label của biểu đồ**
Ta sử dụng hàm labs()
để đổi title và label của các trục và các chú thích có trong biểu đồ
1# Biểu đồ scatter với kích thước theo khối lượng xe
2ggplot(data = mtcars, aes(x = mpg, y = hp)) +
3 geom_point(
4 aes(
5 color = factor(am),
6 size=wt
7 )
8 ) +
9 geom_smooth(
10 method = "lm",
11 formula = "y~ x + I(x^2)",
12 se = FALSE
13 ) +
14 labs(
15 x = 'Miles/(US) gallon',
16 y = "Gross horsepower",
17 color = "Transmission (0 = automatic, 1 = manual)",
18 size = "Weight (1000 lbs)"
19 ) +
20 theme_bw()
![](https://cdn.sanity.io/images/rjcymabl/production/d682bd57c4594a0606c73dfffab5bef14af024c0-2070x1161.png?w=750)
8. Kết thúc
Trong bài viết này, chúng ta đã tìm hiểu cách sử dụng thư viện ggplot2
để trực quan hoá dữ liệu và vẽ biểu đồ trong R. ggplot2
cung cấp nhiều tính năng mạnh mẽ để tùy chỉnh biểu đồ của bạn và biểu diễn dữ liệu một cách trực quan và hiệu quả. Đây chỉ là một phần nhỏ của những gì bạn có thể làm với ggplot2
, và bạn có thể tiếp tục khám phá để tạo ra các biểu đồ phức tạp hơn và phù hợp với nhu cầu phân tích của bạn.