2013-05-19 24 views
5

Tôi đang tạo một bản đồ hạt choropleth với đường viền màu xám và tôi cũng muốn bao gồm các ranh giới trạng thái màu đen. Có ai biết làm thế nào tôi đi về việc thêm một lớp thứ hai của bản đồ nhà nước đến một bản đồ quận hiện có?ggplot2 lập bản đồ các ranh giới hạt trong một màu và các ranh giới trạng thái khác trên cùng một bản đồ

Đây là data set và mã tôi đã kết thúc bằng:

#load libraries 
    library(ggplot2) 
    library(ggmap) 
    library(maps) 
    library(plyr) 

#get wif file 
wip <- read.csv("wip.csv") 

#get map data for US counties and states 
county_map <- map_data("county") 
state_map <- map_data("state") 

#merge wip and county_map 
wip_map <- merge(county_map, wip, by.x=c("region", "subregion"), 
    by.y=c("region","subregion"), all.x=TRUE) 

#resort merged data 
wip_map <- arrange(wip_map, group, order) 

#relpace NA with 0's 
wip_map[is.na(wip_map)] <- 0 

#generate a disctrete color pallette  
pal <- c("#F7FCF5","#74C476","#41AB5D","#238B45","#006D2C","#00441B") 


theme_clean <- function(base_size = 12) { 
    require(grid) 
    theme_grey(base_size) %+replace% 
    theme(
     axis.title  = element_blank(), 
     axis.text  = element_blank(), 
     panel.background = element_blank(), 
     panel.grid  = element_blank(), 
     axis.ticks.length = unit(0,"cm"), 
     axis.ticks.margin = unit(0,"cm"), 
     panel.margin = unit(0,"lines"), 
     plot.margin  = unit(c(0,0,0,0),"lines"), 
     complete = TRUE 
     ) 
    } 

final_map <- ggplot(wip_map, aes(x=long, y=lat, group=group, fill=factor(CATEGORY))) + 
      geom_polygon(colour="grey", aes(fill=factor(CATEGORY))) + 
      scale_fill_manual(values=pal) + 
      expand_limits(x = wip_map$long, y = wip_map$lat) + 
      coord_map("polyconic") + 
      labs(fill="Number Per\nCounty") + 
       theme_clean() 

final_map + geom_path(data = state_map , colour = "red") 

Cảm ơn!

+0

Các tập tin mà bạn liên kết cho bộ dữ liệu của bạn trong thùng rác của Google Drive của bạn. Nó sẽ biến mất sớm thôi. Bạn có thể cập nhật nội dung cho một liên kết vĩnh viễn hơn được lưu trữ trên một thứ gì đó như pastebin không? – csalvato

Trả lời

12

Chỉ cần thêm một geom_path mã của bạn ...

tôi đã sử dụng màu đỏ để làm nổi bật các ranh giới nhưng bạn có thể dễ dàng chỉ cần đặt nó sang màu đen.

ggplot(wip_map, aes(x = long , y = lat , group=group)) + 
     geom_polygon(colour = "grey" , aes(fill = factor(CATEGORY))) + 
     scale_fill_manual(values = pal) + 
     expand_limits(x = wip_map$long, y = wip_map$lat) + 
     coord_map("polyconic") + 
     labs(fill="Number Per\nCounty") + 
     theme_clean() + 
     geom_path(data = state_map , colour = "red") 

enter image description here

+0

Cảm ơn rất nhiều, tôi thực sự đánh giá cao nó. Giải pháp bạn cung cấp dường như không hoạt động với mã mà tôi đã viết. Khi tôi thêm nó vào mã dưới đây tôi nhận được lỗi "Lỗi trong yếu tố (CATEGORY): đối tượng 'CATEGORY' không tìm thấy": 'ggplot (wip_map, aes (x = dài, y = lat, nhóm = nhóm, điền = yếu tố (LOẠI))) + \t geom_polygon (color = "gray",) + \t scale_fill_manual (giá trị = PAL) + \t expand_limits (x = county_map $ dài, y = county_map $ lat) + \t coord_map ("polyconic ") + \t labs (fill =" Reps Per \ nCounty "' – huxley

+0

Có, 'CATEGORY' là một tên cột trong wip_map, nó chỉ ra cái xô mà một hạt cụ thể rơi vào. Tôi đã loại bỏ dấu phẩy thừa trong' geom_polygon (color = "xám",) 'và nhận được lỗi tương tự. Cảm ơn một lần nữa. – huxley

+0

Tôi đã thêm tập dữ liệu và mã vào bài đăng gốc. Cảm ơn. – huxley

Các vấn đề liên quan