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

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

Xem khóa học

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

  • Gọi classIntervals() trên values(prop_by_age[["age_18_24"]]) với n = 5style = "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ới style = "quantile".
  • Dùng các bin có kích thước bằng nhau bằng cách truyền các đối số nstyle vào lớp tm_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ỉ định breaks = 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ới filename"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"
Chỉnh sửa và Chạy Mã