Chuyển đến nội dung chính
Mô-đun 5 · Bài học 1 trong tổng số 29/10 trong khóa học~12 min
Bài học theo mô-đun (1/2)

Ngữ pháp và hình học cơ bản

Trực quan hóa dữ liệu trong R bị chi phối bởi ggplot2, một gói dựa trên "Ngữ pháp đồ họa". Lý thuyết này chia đồ thị thành các thành phần ngữ nghĩa độc lập, chẳng hạn như dữ liệu, ánh xạ thẩm mỹ và các yếu tố hình học.


Cấu trúc của ggplot2

Mọi biểu đồ được tạo bằng ggplot2 đều bắt đầu bằng lệnh gọi hàm ggplot(), trong đó chúng tôi cung cấp khung dữ liệu và xác định cách các cột ánh xạ tới các thuộc tính trực quan bằng hàm aes() (thẩm mỹ).

Tiếp theo, chúng tôi thêm các lớp hình học bằng toán tử + (lưu ý: chúng tôi sử dụng + chứ không phải %>% trong ggplot2).

Mẫu cơ bản là:

R
ggplot(data = <DATA_FRAME>, mapping = aes(<AESTHETICS>)) +
  <GEOMETRY>()

Ánh xạ thẩm mỹ (aes) và Hình học (geom_*)

Hàm aes() xác định biến nào trong dữ liệu của bạn kiểm soát các thuộc tính trực quan của biểu đồ:

  • x: Vị trí trên trục hoành.
  • y: Vị trí trên trục tung.
  • color: Màu sắc của điểm hoặc đường.
  • fill: Tô màu cho các hình khép kín (ví dụ: thanh).
  • size: Kích thước của phần tử.

Hình học (geom_) xác định kiểu trình bày trực quan:

1. Sơ đồ phân tán (geom_point())

Lý tưởng để hiển thị mối quan hệ giữa hai biến số.

R
ggplot(df, aes(x = age, y = income)) +
  geom_point()

2. Sơ đồ đường (geom_line())

Thường được sử dụng cho chuỗi thời gian hoặc đường xu hướng.

R
ggplot(df, aes(x = year, y = sales)) +
  geom_line()

3. Lô đất quán bar (geom_bar() và geom_col())

Theo mặc định, geom_bar() đếm tần suất của các danh mục, trong khi geom_col() biểu thị trực tiếp các giá trị thực được lưu trữ trong cột y.

R
# Plots the value of the 'sales' column for each 'category'
ggplot(df, aes(x = category, y = sales)) +
  geom_col()

Hãy tự mình thử

Bài tập 1: Tạo biểu đồ phân tán cơ bản

tập thể dục#r.m5.l1.e1
Nỗ lực: 0Đang tải…

Tạo biểu đồ phân tán bằng khung dữ liệu df. Ánh xạ cột chiều cao theo trục x và cột cân nặng theo trục y. Sử dụng geom_point().

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Hỗ trợ sử dụng ggplot(df, aes(x = chiều cao, y = cân nặng)) + geom_point()

Giải pháp khả dụng sau 3 lần thử

Bài tập 2: Thêm màu dựa trên dữ liệu

tập thể dục#r.m5.l1.e2
Nỗ lực: 0Đang tải…

Sửa đổi biểu đồ trước đó bằng cách ánh xạ thuộc tính màu tới cột giới tính bên trong aes() để tô màu các điểm theo giới tính.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Bao gồm màu = giới tính all'interno di aes(), ví dụ quảng cáo: aes(x = chiều cao, y = cân nặng, màu = giới tính).

Giải pháp khả dụng sau 3 lần thử

Bài tập 3: Vẽ đường thẳng

tập thể dục#r.m5.l1.e3
Nỗ lực: 0Đang tải…

Tạo một biểu đồ đường bằng cách sử dụng df. Ánh xạ cột năm vào trục x và cột doanh số vào trục y. Thêm lớp hình học geom_line().

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Hoa Kỳ ggplot(df, aes(x = năm, y = doanh số)) + geom_line()

Giải pháp khả dụng sau 3 lần thử

Bài 4: Vẽ biểu đồ thanh với geom_col

tập thể dục#r.m5.l1.e4
Nỗ lực: 0Đang tải…

Tạo một biểu đồ thanh để hiển thị các giá trị trực tiếp. Ánh xạ cột danh mục tới trục x và cột giá trị tới trục y. Sử dụng hình học geom_col().

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Hoa Kỳ ggplot(df, aes(x = Category, y = value)) + geom_col()

Giải pháp khả dụng sau 3 lần thử

Bài tập 5: Kết hợp nhiều hình học

tập thể dục#r.m5.l1.e5
Nỗ lực: 0Đang tải…

Trong ggplot2 bạn có thể xếp chồng nhiều lớp hình học. Tạo một biểu đồ kết hợp cả geom_point() và geom_smooth(), ánh xạ x_val tới trục x và y_val tới trục y.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Thêm vào đó geom_point() che geom_smooth() tách biệt dal segno '+'.

Giải pháp khả dụng sau 3 lần thử