前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言可视化——多边形与数据地图填充

R语言可视化——多边形与数据地图填充

作者头像
数据小磨坊
发布2018-04-11 14:31:49
1.6K0
发布2018-04-11 14:31:49
举报
文章被收录于专栏:数据小魔方数据小魔方

ggplot函数中有一类特殊的图表类型叫做多边形,很难用传统的视角来定义它属于哪一类图表,因为它能够呈现信息多种多样。

特别是在做某些比较高阶的图表——地图时,这种多边形函数便能够大显神通。

之前本公众号所推送的所有涉及地图图表绘制所使用的技巧,几乎全部都依赖多边形函数的支持。

library(ggplot2)

library(plyr)

library("maptools")

这里以之前推送过的全球地图为例:

导入地图地理信息数据:

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

使用路径图进行区域轮廓描边:

ggplot(world_map,aes(x=long,y=lat,group=group)) +

geom_path()

更改路径线为白色,清除掉背景和网格线以及坐标轴:

ggplot(world_map,aes(x=long,y=lat,group=group)) +

geom_path(colour="steelblue")+ theme(

panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

使用多边形进行描边并填充:(在多边形中是可以进行线条与形状分别填色的)

ggplot(world_map,aes(x=long,y=lat,group=group)) +geom_polygon(fill="white",colour="grey") + theme( panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

这就是我们之前所制作的填色地图的主体代码语句,数据集是从shp文件导入,可以看出,其实只需要三列字段信息,就可以画出一幅地图来:经纬度(二维坐标信息,也可以看作是一组代表X、Y轴的散点),另外的一列变量group其实是一个分类变量,将同一个单位区域轮廓(一个国家或者地区、岛屿等)用一组相同的编号表示。

如果再加上一列连续数值变量,可以将其指定为fill渐变填充的参考指标,那么最终完成的图表就是一幅按照不同地区指标大小对应渐变填色地图。

其实这种不带任何实质数据信息的地图,很多R包中都有提供:(这里以maps包为例)

library(maps)

states<-map_data("state")

ggplot(states,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

map包是一个专门用来做地图的加载包,里面存有几个可以用的地图数据包:

states<-map_data("world") #全球地图

ggplot(world,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

france<-map_data("france") #法国地图

ggplot(france,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

county<-map_data("county") #美国郡级

ggplot(county,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+ theme(panel.grid = element_blank(),

panel.background = element_blank(),

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

地图投影方式:

france<-map_data("france") #法国地图

ggplot(france,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+coord_map("polyconic")+theme(

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

county<-map_data("county") #美国郡级

ggplot(county,aes(long,lat,group=group))+geom_polygon(fill="white",colour="steelblue")+coord_map("polyconic")+theme(

axis.text = element_blank(),

axis.ticks = element_blank(),

axis.title = element_blank())

地图图表作为ggplot函数中一大类比较高阶的图表,可以做出很多让人眼花缭乱、令人尖叫的作品来,感兴趣的小伙伴儿赶快学起来。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小魔方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档