R語言數據地圖——全球填色地圖

今天這篇是昨天美國地圖的續篇,一樣的方法技巧,不一樣的對象。微信


整個過程以及代碼並無太大差異,只要拿到世界地圖素材,根據以前的代碼,本身修改參數和指標名稱以及引用路徑,徹底能夠作出來(儘管並不必定理解每句代碼的含義)。工具


R語言環境:spa


R x64 3.31/Rstudio 0.99.903/ggplot2 2.1.0.net


代碼過程:對象


加載功能所需支持的工具包:
blog


library(ggplot2)
ci

library(plyr)element

library("maptools")get


導入並整理世界地圖地理信息數據:it


world_map <-readShapePoly("c:/rstudy/wold_map/World_region.shp")

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

xs <- data.frame(x,id=seq(0:250)-1)  #含島嶼共251個形狀


world_map1 <- fortify(world_map)       #轉化爲數據框

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


導入指標文件數據併合併成做圖數據:


mydata <- read.csv("C:/rstudy/wold_map/Region_map.csv")   #讀取指標數據,csv格式

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


地圖填充過程代碼:


這裏仍是經過調整映射方式參數:coord_map("ortho", orientation = c(30, 110, 0))能夠變換地圖的呈現視角:


常見平面視角的全球地圖填充:


ggplot(world_data, aes(x = long, y = lat, group = group,fill = zhibiao1)) +

      geom_polygon(colour="grey40") +

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

      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.2,0.3)

            )#平面地圖




立體空間地圖:(添加有映射方式參數coord_map)


ggplot(world_data, aes(x = long, y = lat, group = group,fill = zhibiao1)) +

     geom_polygon(colour="grey40") +

     coord_map("ortho", orientation = c(30, 110, 0))+

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

     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.2,0.3)

          )#映射成空間地圖




以上的語法有幾點須要提示一下:


第1、代碼中帶#號後的文本是R語言承認的註釋語句,帶運行代碼的時候沒必要清除,能夠直接跑。


第2、因爲全球地圖呈現的信息比較豐富,全部的海島和羣島信息所有都會上色,特別是北歐、北美(加拿大)、大洋洲這些多島嶼、羣島低於會有大量的密集分佈的小島,而填色代碼在填充時,多邊形線條填充爲灰色,形成不少地區邊界以及島鏈出現大面積黑灰色。


看起來很不美觀,因此若是能夠將線條色設置爲白色,這樣效果會好些:geom_polygon(colour="white")




可是這樣作也會有不足,由於漸變色的色值範圍是從(low="white",high="steelblue")連續過渡的,這樣數值接近於零的地區會被填充爲純白,這樣與邊線的白色會混雜,致使局部地區邊界難辨。


固然你也能夠嘗試用雙色過渡。




我把漸變範圍的低值與高值起點色和重點色替換成了:(low="DeepSkyBlue",high="OrangeRed")。


看起來比剛纔由low="white"到high="steelblue"看着舒服一些。


可是一般來說根據數據地圖的填色規範:


指標都是正值,應該使用單色系連續漸變填充,只有在存在正負值類型的數據時,雙色漸變才比較有意義。


因此用色規範還要遵循的,不過本身練着玩就沒那麼多將就了,能夠想怎麼弄就怎麼弄。


魔方學院QQ羣:


QQ羣:

微信羣:


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

相關文章
相關標籤/搜索