Tôi đang cố gắng xây dựng bản đồ ở số ggplot2
bằng cách sử dụng dữ liệu từ các khung dữ liệu riêng biệt.Trong ggplot2, làm cách nào để thêm chú thích bổ sung?
library(maptools)
xx <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1], IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
xx.sub1 <- subset(xx, xx$FIPSNO < 37010)
xx.sub2 <- subset(xx, xx$FIPSNO > 37010)
[email protected]$id <- rownames([email protected])
xx.sub1.points <- fortify(xx.sub1, region="id")
xx.sub1.df = join(xx.sub1.points, [email protected], by="id")
[email protected]$id <- rownames([email protected])
xx.sub2.points <- fortify(xx.sub2, region="id")
xx.sub2.df = join(xx.sub2.points, [email protected], by="id")
ggplot(xx.sub2.df) +
aes(long, lat, fill = (SID79/BIR79)*1000, group = group) +
geom_polygon() + geom_path(color="grey80") +
coord_equal() +
scale_fill_gradientn(colours = brewer.pal(7, "YlOrBr")) +
geom_polygon(data = xx.sub1.df, fill = "grey50") +
geom_path(data = xx.sub1.df, color="grey80") +
labs(fill = "Mapped value", title = "Title")
Tính đến thời điểm này mọi thứ hoạt động như mong đợi và tôi nhận được một bản đồ đẹp:
Những gì tôi muốn thay đổi tuy nhiên là thêm huyền thoại riêng cho dữ liệu từ xx.sub1.df
- kể từ tất cả các đa giác chỉ đầy màu xám Tôi hy vọng nó sẽ là một mục bổ sung.
Làm cách nào để đạt được điều đó?
ví dụ có thể tái sản xuất (http://tinyurl.com/reproducible-000) vui lòng? Cách hợp lý để giải quyết vấn đề này là hợp nhất các tập dữ liệu, bao gồm biến yếu tố xác định khung dữ liệu gốc mà mỗi tập dữ liệu xuất phát, sau đó sử dụng thẩm mỹ (trong trường hợp của bạn để điền, tôi nghĩ) ... bạn có thể xem gói 'scale' để xem liệu có cách nào khác là –
@BenBolker Roger không. Đã thêm ví dụ. Tôi biết rằng nó sẽ là cách dễ dàng hơn để có tất cả mọi thứ trong một df. Tuy nhiên, tôi thường làm việc với các lớp dữ liệu khác nhau (có thể là sự thiên vị của tôi đến từ nền GIS) mà có thể là một nỗi đau ở cổ để tham gia. Và trong ví dụ cụ thể này, tôi cần phải chọn vài đa giác và 'đánh dấu' hoặc 'che' chúng một cách nhanh chóng. – radek
Bạn có thể thêm 'dữ liệu' của dữ liệu để có thể trả lời câu hỏi của bạn bằng bản đồ nhiệt được cập nhật không? Tôi đoán rằng: (1) bạn chỉ sử dụng 2 cột 'xx.sub2', (2) trạng thái xuất hiện màu xám nếu chúng xuất hiện trong' xx.sub1'. Do đó tham gia dường như không gây phiền nhiễu. Bạn có thể chỉ cần thêm một yếu tố trong 'xx.sub2' cho các mục nhập trong' xx.sub1' và có thể sử dụng 'scale_fill_manual' để điều chỉnh màu trong chú giải. –