今天這篇是昨天美國地圖的續篇,一樣的方法技巧,不一樣的對象。微信
整個過程以及代碼並無太大差異,只要拿到世界地圖素材,根據以前的代碼,本身修改參數和指標名稱以及引用路徑,徹底能夠作出來(儘管並不必定理解每句代碼的含義)。工具
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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。