R语言数据地图——美国地图

之前有过一段时间,特别热衷于数据地图,也分享很多篇关于地图制作的教程(涉及到各种作图软件),但大多是整理拼凑,自己发挥的不多。

最近在看哈德利.威科姆的那本火遍全球的R语言数据可视化经典教程——《ggplot2——数据分析与图形艺术》。书内虽然关于数据地图的内容很少,但是ggplot所渗透的可视化图层理念实在让人叹为观止。

书中完全将复杂的地图图表语言拆解成常规图表思维,通过图层叠加、分组填色、空间映射,让我对地图这种深度可视化形式有了更多深入的理解。

今天这一篇主要分享美国地图的绘图代码,同样是我们之前分享世界地图、中国地图时的代码(局部地方有小改动)。

之前迟迟没有找到好用的美国全境的地理信息数据,最近终于在某网站上找到了。(虽然R语言的Map包中存有可以用的美国地图,但是自己还是喜欢用自定义方式来做)。

平台环境:

R x64 3.31/Rstudio 0.99.903/ggplot2 2.1.0

关于包的安装及加载更新问题,昨天的教程已经讲得很清楚了。

以下是代码步骤:

1、加载代码运行所需的环境包

library(ggplot2)

library(plyr)

library("maptools")

2、读取并转化美国各州地理信息数据(该数据会共享在魔方学院的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") #合并两个数据框

3、读取业务指标数据(该文件也会打包分享)

该数据文件是.CSV格式的,可以用excel直接打开替换指标数据即可,然后另存为.CSV格式。

mydata <- read.csv("C:/rstudy/USA_map/USA_data.csv")#读取业务指标数据,csv格式

4、将地理数据与业务指标数据合并为作图数据(数据框)

American_data <- join(American_map_data, mydata, type="full") #合并两个数据框

5、地图映射代码(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参数修改;

由于美国州较多,州名不便全部标出,所以以上不含各州标签。

原文发布于微信公众号 - 数据小魔方(datamofang)

原文发表时间:2016-09-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

ModSecurity技巧:使用ssdeep检测Webshell

最新版本的ModSecurity增加了ssdeep检测webshell的接口,于是猛地回忆起搞客户端安全(游戏安全)的时候买过一本书《恶意软件分析诀窍与工具箱-...

4018
来自专栏linux驱动个人学习

GPU与CPU的区别

1683
来自专栏Python攻城狮

从数据角度探究《前任3》为什么这么火爆

豆瓣上8万多人只打出了5.8的评分,其中1星-3星占比72.6%,那么问题来了,在绝大多数豆瓣粉丝都认为是“烂片”的情况下,究竟是什么让《前任3》票房意外火爆呢...

922
来自专栏SDNLAB

SDN最新研究进展

自SDN出现以来,关于SDN的研究一直没有停止,只是不同的阶段关于SDN的研究的重点不同。比如最开始的时候,探讨最多的是SDN的可行性,以及如何将SDN应用到对...

4446
来自专栏CDA数据分析师

Python告诉你:单词软件火了,但真的有那么多人在背单词吗?

0x00 前言 你想知道背单词软件有大概多少人注册第一天都没有背完嘛? 你想知道背单词软件这么火,这么多人在使用,真的有多少人真的在背诵嘛? 别急,Python...

2547
来自专栏FreeBuf

利用威胁情报数据平台拓展APT攻击线索一例

当我们说起APT攻击线索的发现,似乎是一个挺神秘的事,安全厂商往往说得云山雾罩,如果现在你问如何知道某件事情的时侯,得到的回答往往是:”嗯,我们用了机器学习”,...

3556
来自专栏瓜大三哥

FPGA内部资源介绍

3422
来自专栏谈补锅

apns关于APP数字角标的理解

  前两天群里有兄弟在吐槽,做远程推送的时候:老板要求APP桌面图标的右上角显示红色未读数字(数字角标)要精准,有多少未读通知就显示数字几;但是后台的弟兄在发送...

2183
来自专栏Data Analysis & Viz

图表太丑怎么破,ECharts神器带你飞!

在本专栏或文集中,我曾多次使用ECharts绘制图表、进行可视化,也渐渐积累了30多个实例,本文对此前用过的所有图表和代码进行整理并分享,以给想绘制精美图表的人...

4902
来自专栏数据小魔方

shiny动态仪表盘应用——中国世界自然文化遗产可视化案例

这一篇很早就想写了,一直拖到现在都没写完。 虽然最近的社交网络上娱乐新闻热点特别多,想用来做可视化分析的素材简直多到不可想象,但是我个人一向不追星,对明星热文和...

6317

扫码关注云+社区

领取腾讯云代金券