2013-05-19 15 views
5

私は灰色の境界線を持つchoropleth countyマップを作成しています。既存の郡地図に第2層の州地図を追加する方法を知っていますか?ggplot2同じマップ上のある色と州の境界線を別の色と州境にマッピングします

は、ここに私が使用して終了data setとコードです:

#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") 

ありがとう!

+0

あなたは、データセットのリンクファイルはGoogleドライブのゴミ箱にあります。すぐに消えるだろう。ペーストビンのようなものでホストされているより永続的なリンクにコンテンツを更新することは可能でしょうか? – csalvato

答えて

12

ちょうど私が境界を強調するために赤を使用していますが、簡単にだけ黒に設定することができます...あなたのコードに

geom_pathを追加します。

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

ありがとう、本当に感謝しています。あなたが提供したソリューションは、私が書いたコードではうまく動作しないようです。私はそれを下のコードに追加するとエラーが発生します "エラー(カテゴリ):オブジェクト 'CATEGORY'が見つかりません":ggplot(wip_map、aes(x = long、y = lat、group = group、fill = factor (CATEGORY)))+ \t geom_polygon(色= "グレー"、)+ \t scale_fill_manual(値= PAL)+ \t expand_limits(X = county_map $長く、Y = county_map $ LAT)+ \t coord_map(「polyconic ")+ \t labs(fill =" Reps Per \ nCounty ") – huxley

+0

はい、「CATEGORY」はwip_mapの列名です。特定の郡がどのバケットに該当するかを示しています。' geom_polygon(color = "grey"、) 'と同じエラーが発生しました。ありがとうございます。 – huxley

+0

元の投稿にデータセットとコードを追加しました。ありがとう。 – huxley

関連する問題