Bắt đầu ngayBắt đầu miễn phí

Xây dựng biểu đồ theo từng lớp

Giờ bạn đã biết thêm về tmap(), hãy xây dựng lại biểu đồ dân số trước đó theo từng lớp và chỉnh một vài chi tiết để cải thiện. Bạn bắt đầu với một lớp tm_shape() để xác định dữ liệu sẽ dùng, rồi thêm lớp tm_fill() để tô màu các đa giác bằng biến population:

tm_shape(countries_spdf) +
  tm_fill(col = "population") 

Có lẽ vấn đề lớn nhất của biểu đồ kết quả là thang màu không mấy hữu ích: màu đầu tiên (vàng rất nhạt) bao phủ mọi quốc gia có dân số dưới 200 triệu! Vì thang màu gắn với lớp tm_fill(), các tinh chỉnh cho thang này sẽ thực hiện trong lời gọi đó. Bạn sẽ học kỹ về màu sắc ở Chương 3, nhưng hiện tại, hãy biết rằng đối số style điều khiển cách chọn các điểm ngắt (breaks).

Biểu đồ của bạn cũng cần viền ranh giới các quốc gia. Bạn có thể thêm một lớp tm_borders() cho việc này, nhưng đừng để chúng quá nổi bật. Có lẽ một tông nâu sẽ ổn.

Lợi ích của việc dùng các đối tượng không gian sẽ thấy rõ khi bạn chuyển kiểu biểu đồ. Hãy thử thêm một biểu đồ bong bóng, nơi kích thước bong bóng tương ứng với dân số. Nếu dùng ggplot2, bạn sẽ phải biến đổi dữ liệu khá nhiều. Với tmap, bạn chỉ cần thay một lớp là xong.

Bài tập này là một phần của khóa học

Trực quan hóa dữ liệu địa lý trong R

Xem khóa học

Hướng dẫn bài tập

  • Thêm style = "quantile" vào tm_fill(). Tùy chọn này chọn các điểm ngắt của thang màu dựa trên số lượng quan sát bằng nhau trong mỗi khoảng.
  • Trên cùng biểu đồ đó, thêm lớp tm_borders() với col = "burlywood4".
  • Tạo một biểu đồ mới giống biểu đồ đầu tiên, nhưng thay vì tm_fill() thì thêm lớp tm_bubbles() với size ánh xạ theo population.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

library(sp)
library(tmap)

# Add style argument to the tm_fill() call
tm_shape(countries_spdf) +
  tm_fill(col = "population") +
  # Add a tm_borders() layer 
  

# New plot, with tm_bubbles() instead of tm_fill()
Chỉnh sửa và Chạy Mã