messenger_logo
Liên hệ qua Messenger
SciEco

[BLOG 005] Giới thiệu thư viện ggplot2 - Ứng dụng trực quan hoá dữ liệu và vẽ biểu đồ trong R

KH
Khanh Hoang
Ngày viết: 24/09/2023

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)

1# Thông tin của dataset mtcars
2help(mtcars)

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()

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")

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)

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)))

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  )

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()

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.


Bài viết khác
1. Giới thiệu Phân cụm đồ thị (K-means Clustering) là quá trình phân chia hoặc tách biệt dữ liệu theo các nhóm dựa trên các đặc điểm chung sau đó được biểu thị qua một đồ thị. Phù hợp với những công việc cần phân khúc các tệp khách hàng trong thương mại, phân tích thị trường. Điều này giúp các công ty hiểu rõ hơn về sở thích và nhu cầu của từng nhóm, qua đó đưa ra chiến lược marketing phù hợp. Trong thuật toán phân cụm, K-means là một thuật toán phân cụm đơn giản và phổ biến trong học máy (machine learning) để phân cụm các điểm dữ liệu thành các nhóm riêng biệt dựa trên các đặc điểm của chúng. Thuật toán này dùng để chia dữ liệu thành các nhóm dựa trên khoảng cách giữa các điểm dữ liệu với nhau. 2. Ta cài đặt những thư viện sau
Trong thời đại của số hóa và khoa học dữ liệu lên ngôi, khả năng phân tích, giải mã và trích xuất thông tin hữu ích từ khối lượng dữ liệu khổng lồ là một kỹ năng không thể thiếu để giúp bạn thích nghi với yêu cầu của công việc! Đặc biệt, với việc làm chủ STATA, phần mềm phân tích dữ liệu có giao diện thân thiện và khả năng xử lý dữ liệu mạnh mẽ sẽ là công cụ đắc lực cho bạn. Để có thể giúp bạn chinh phục STATA, SciEco ở đây để mang đến cho bạn khóa học STATA đầy hấp dẫn: Nội dung khóa học chi tiết: Bài 1: Giới thiệu về STATA và VES
SciEco
Science for Economics
Định hướng đào tạo phân tích dữ liệu, xây dựng chính sách, tối ưu hoá danh mục tài chính cá nhân và dự báo thị trường.
Liên hệ
Địa chỉ: Số 60, ngõ 41, Phố Thái Hà, Trung Liệt, Đống Đa, Hà Nội (Google Map)
Email: science.for.economics@gmail.com
Hotline: 03.57.94.7680 (Mrs. Hà)
Mạng xã hội