感谢关注天善智能,走好数据之路↑↑↑
欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定!
本文作者:天善智能社区专家杜雨
通常我们在政治新闻或者财经日报中看到的数据可视化图表中,美国地图中的两个海外州——阿拉斯加和夏威夷都是被平移过的,主要因为这两个海外州偏离本土太远,使用原始位置会使得美国地图的整体比例尺偏大,局部内容被缩小,整个版面中留有大量空隙。
政治新闻中最长出现的美国地图:
这是一个带有polyconic(普通多圆锥投影的)投影的美国地图,最重要的是,为了控制整个地图版面的比例尺并提高空间利用效率,该地图将美国的海外两州(阿拉斯加、夏威夷)移至大陆左下侧空隙处。
而且这两个州是带着原始投影(即在原始经纬度位置的多圆锥投影参数)迁移过来的,也就是说大陆部分、阿拉斯加部分、夏威夷部分当前并非在同一个多圆锥投影空间里,它们是三个投影图层拼贴在一起的。
但是通常来讲,我们从网络上免费获取的美国地图素材(无论是shp\json\svg),都是原始经纬度数据,仅有少量适量素材(eps\ai等)会做过处理,所以我们需要自己处理坐标平移的问题。
按照通常的方法做出来的美国地图:
library("ggplot2")
library("RColorBrewer")
library("ggthemes")
library("ggmapr")
library("plyr")
library("dplyr")
mymapdata<-states %>% filter(NAME!="Puerto Rico")
ggplot(mymapdata,aes(long,lat,group=group))+
geom_polygon(fill="grey95",col="grey")+
coord_map("polyconic")+
theme_map()
这样的地图很多信息会因为版面问题无法呈现清楚,想要为东北部的小州(单指面积小)基本在视觉上很难被发现,需要添加大量备注信息。
我们要在R语言中动手处理这个动作,能使用的素材格式非常有限,通常以shp和json为主。
今天我给大家讲解我在此问题上所经历过的四次探索:
纯手工调整;(只能移动位置,无法修正投影)
使用图层贴合技术(可以带原始位置投影调整,相当于拼图)
使用ggmapr包调整(同方案1,只能调整位置,无法修正投影)
使用albersusa包(通过封装函数自动完成调整过程,带投影&#x