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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索