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
Hướng dẫn bài tập
- Thêm
style = "quantile"vàotm_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ớicol = "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ớptm_bubbles()vớisizeá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()