Ví dụ về thang đo khoảng
Hãy quay lại biểu đồ về tỷ lệ dân số trong độ tuổi từ 18 đến 24 của bạn:
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
Biểu đồ của bạn gặp vấn đề vì phần lớn tỷ lệ rơi vào mức màu thấp nhất, nên bạn hầu như không thấy nhiều chi tiết. Một cách giải quyết là: thay vì chia khoảng giá trị của biến thành các bins có chiều dài bằng nhau, bạn có thể chia thành các nhóm hữu ích hơn.
Bắt đầu bằng cách tái tạo các bins mặc định của tmap: năm nhóm, cắt theo các điểm ngắt "pretty". Sau đó, bạn có thể thử một vài phương pháp khác để cắt biến thành các khoảng. Sử dụng trực tiếp hàm classIntervals() giúp bạn nhanh chóng biết các điểm ngắt sẽ là gì, nhưng cách tốt nhất để thử một bộ điểm ngắt là vẽ chúng ra biểu đồ.
(Ngoài lề: một cách khác để xử lý kiểu vấn đề này là tìm một phép biến đổi cho biến sao cho các bins có chiều dài bằng nhau trên thang đã biến đổi trở nên hữu ích hơn.)
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
- Gọi
classIntervals()trênvalues(prop_by_age[["age_18_24"]])vớin = 5vàstyle = "pretty". Bạn thấy vấn đề chứ? 130.770 ô lưới của bạn rơi vào bin đầu tiên. - Giờ hãy gọi
classIntervals()như trên, nhưng vớistyle = "quantile". - Dùng các bin có kích thước bằng nhau bằng cách truyền các đối số
nvàstylevào lớptm_raster()của biểu đồ. - Vẽ biểu đồ histogram của
values(prop_by_age[["age_18_24"]]). Bạn sẽ đặt các điểm ngắt ở đâu? - Tạo các điểm ngắt của riêng bạn trong
tm_raster()bằng cách chỉ địnhbreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1). - Lưu biểu đồ cuối cùng của bạn dưới dạng biểu đồ leaflet bằng
tmap_save()vớifilenamelà"prop_18-24.html".
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.
mag <- viridisLite::magma(7)
library(classInt)
# Create 5 "pretty" breaks with classIntervals()
# Create 5 "quantile" breaks with classIntervals()
# Use 5 "quantile" breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag) +
tm_legend(position = c("right", "bottom"))
# Create histogram of proportions
# Use fixed breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag,
style = "fixed")
# Save your plot to "prop_18-24.html"