R語言數據地圖——美國地圖

以前有過一段時間,特別熱衷於數據地圖,也分享不少篇關於地圖製做的教程(涉及到各類做圖軟件),但大可能是整理拼湊,本身發揮的很少。微信


最近在看哈德利.威科姆的那本火遍全球的R語言數據可視化經典教程——《ggplot2——數據分析與圖形藝術》。書內雖然關於數據地圖的內容不多,可是ggplot所滲透的可視化圖層理念實在讓人歎爲觀止。函數


書中徹底將複雜的地圖圖表語言拆解成常規圖表思惟,經過圖層疊加、分組填色、空間映射,讓我對地圖這種深度可視化形式有了更多深刻的理解。網站


今天這一篇主要分享美國地圖的繪圖代碼,一樣是咱們以前分享世界地圖、中國地圖時的代碼(局部地方有小改動)。spa


以前遲遲沒有找到好用的美國全境的地理信息數據,最近終於在某網站上找到了。(雖然R語言的Map包中存有能夠用的美國地圖,可是本身仍是喜歡用自定義方式來作)。.net


平臺環境:
excel


R x64 3.31/Rstudio 0.99.903/ggplot2 2.1.0blog


關於包的安裝及加載更新問題,昨天的教程已經講得很清楚了。教程


如下是代碼步驟:ci


一、加載代碼運行所需的環境包element


library(ggplot2)

library(plyr)

library("maptools")


二、讀取並轉化美國各州地理信息數據(該數據會共享在魔方學院的QQ羣裏)


American_map <-readShapePoly("C:/rstudy/USA_map/STATES.SHP") #將地理信息數據導入R環境

x <- American_map@data         #讀取行政信息

xs <- data.frame(x,id=seq(0:50)-1)  #共51個形狀

American_map1 <- fortify(American_map) #轉化爲數據框

American_map_data <- join(American_map1, xs, type = "full") #合併兩個數據框





三、讀取業務指標數據(該文件也會打包分享)


該數據文件是.CSV格式的,能夠用excel直接打開替換指標數據便可,而後另存爲.CSV格式。



mydata <- read.csv("C:/rstudy/USA_map/USA_data.csv")#讀取業務指標數據,csv格式


四、將地理數據與業務指標數據合併爲做圖數據(數據框)


American_data <- join(American_map_data, mydata, type="full") #合併兩個數據框


五、地圖映射代碼(ggplot2包所支持的ggplot函數,感興趣能夠自行探索,若不感興趣,直接忽略跑代碼便可)。



ggplot(American_data, aes(x = long, y = lat, group = group,fill = Sale)) +

     geom_polygon(colour="grey40") +

     scale_fill_gradient(low="white",high="steelblue") +  #指定漸變填充色,可以使用RGB

     coord_map("polyconic") +       #指定投影方式爲polyconic,得到常見視角美國地圖,如要得到平面視角地圖,此句可省略

     theme(               #清除不須要的元素

          panel.grid = element_blank(),

          panel.background = element_blank(),

          axis.text = element_blank(),

          axis.ticks = element_blank(),

          axis.title = element_blank(),

          legend.position = c(0.1,0.3)

          ) 


帶空間投影方式的美國地圖全境:




如下是刪除coord_map("polyconic")字句後的地圖映射效果:




其中填充的顏色漸變能夠經過scale_fill_gradient(low="white",high="steelblue")參數修改;


各州區域輪郭線能夠經過geom_polygon(colour="grey40")參數修改;


填充數據指標能夠經過fill = Sale參數修改;


因爲美國州較多,州名不便所有標出,因此以上不含各州標籤。


魔方學院QQ羣:


QQ羣:

微信羣:


本文分享自微信公衆號 - 數據小魔方(datamofang)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索