我最近需要爲美國使用組合統計區域創建地圖 - 我想分享如何做到這一點。如果您想使用郵政編碼或其他部門(縣,國會等)R中的複雜地圖使用ggplot2
回答
1)您需要獲取任何程序繪製地圖所需的shapefile - 這些基本上定義了多邊形創建形狀(狀態,拉鍊,csa等)。在美國人口普查局提供那些
http://www.census.gov/cgi-bin/geo/shapefiles2013/main
(我很抱歉,但這些是如此之大,我不能提供一個例子中的數據)。解壓縮並將它們放到您選擇的目錄中。 2)使用包maptools中的readShapeSpatial,需要將文件導入到R中的空間數據框對象中。在我的情況下,我讀了2個文件,描述繪製邊界和csa文件來繪製城域。爲了簡單起見,我在每個中創建了一個id字段,這不是必需的。請注意rgeos需要,以及在默認情況下maptools嘗試使用gpoclib但也有一些許可證的問題,rgeos能源部鼻涕有那些
require(maptools)
require(rgeos)
cbsa_bdry = readShapeSpatial("tl_2013_us_csa.shp")
[email protected]$id <- as.character([email protected]$GEOID)
state_bdry = readShapeSpatial("tl_2013_us_state.shp")
[email protected]$id <- as.character([email protected]$STUSPS)
3)的文件需要強化在ggplot使用 - 遠因爲我可以告訴這是從空間數據集創建繪圖的數據框。我不明白,但它是必要的。在這裏使用id字段 - 在我的情況下,狀態和CSA數
cbsa_map_f <- fortify(cbsa_bdry, region="id")
state_map_f <- fortify(state_bdry, region="id")
此時設防文件可使用ggplot映射,但通常你想一些其他數據與他們進行映射,例如定義形狀顏色的興趣變量(可以說擁有州長官邸的聚會,或者平均收入,或者任何你的分析指定的)
4)我將合併空間的數據部分這個例子中的數據框,在這種情況下,我不支付任何其他數據。請注意,我學會了使用合併可能會由於排序而弄亂數據的困難方式,如果使用合併,請確保數據未被排序爲其中的一部分,因此我正在使用join。
require(plyr)
state_map_df <-join(state_map_f, [email protected], by="id")
state_map_df$state <- state_map_df$STUSPS
5)做你的圖表 - 你需要繪製層,從而,底層第一,然後第二個,或者一個可以掩蓋其他。爲了簡單起見,我只繪製德克薩斯
tx <-subset(cbsa_map_df,state=="TX")
tx1 <- subset(state_map_df,state=="TX")
require(ggplot2)
require(mapproj)
sample <- ggplot(NULL) +geom_polygon(data=tx1,aes(long,lat,group=group),color="blue",fill="light gray")+coord_map(projection="mercator")+theme_bw()
sample <- sample + geom_polygon(data=tx,aes(long,lat,fill=NAME,group=group),color="black")+theme(legend.position="bottom",axis.text.x = element_blank(),axis.text.y = element_blank(),axis.ticks = element_blank())
sample<- sample+guides(fill=guide_legend(title="MSA Name",nrow = 3,title.position="top",title.hjust=0.5,title.theme=element_text(face="bold",angle=0)))
sample <- sample + scale_x_continuous("")+scale_y_continuous("")
sample
我不傳遞dataframne到初始gplot調用來打開圖表作爲各層使用的數據的數據幀不同。如果我合併的數據使用一個連續的尺度我會使用的填充=爲CSA部分
- 1. 使用ggplot2繪製R中的複數
- 2. 如何使用ggplot2製作複雜的熱圖?
- 3. 在R中使用ggplot2修改圖例
- 4. 在R中使用ggplot2創建繪圖
- 5. 世界地圖 - 使用GGPLOT2
- 6. R,ggplot2,熱圖
- 7. JAXB和複雜的地圖
- 8. [R GGPLOT2:複雜的堆疊條形圖與多個分類變量
- 9. axis2中的複雜類型 - 地圖
- 10. 使用ggplot2進行R條件製圖
- 11. AutoMapper地圖複雜對象
- 12. 使用ggplot2的R中的Boxplot
- 13. 從列表中使用ggplot2-R的多個直方圖圖
- 14. 如何使用ggplot2將新圖例添加到複雜散點圖
- 15. 顯示多條曲線與在使用一次在GGPLOT2使用R. GGPLOT2 R中
- 16. 地圖人口普查:rbind使用ggplot2強化R中的空間對象
- 17. R:在ggplot2中使用條形圖中的日期
- 18. [R創建使用GGPLOT2
- 19. 「合併」使用GGPLOT2和R
- 20. ggplot2 - R - 如何修復圖例中氣泡的大小
- 21. 如何填寫r中的空白? ggplot2和地圖
- 22. R ggplot2世界地圖。在傳說中的突破
- 23. 使用R和ggplot2的boxplot圖例中的透明度
- 24. 地塊使用GGPLOT2
- 25. 在R中使用HeatMap GGPLOT2之前有條件地求和列?
- 26. ggplot2註釋R中的圖層位置
- 27. ggplot2 - 刪除R中的大小圖例
- 28. R:使用ggplot2平滑處理數據圖中的binned數據
- 29. 使用ggplot2在R中堆積的條形圖
- 30. 創建R中特定的圖表使用GGPLOT2
我是想回饋社會 - 這花了很多的精力去做它非常有用 – user1617979