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

浏览: 2366

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()

Clipboard Image.png

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

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())

Clipboard Image.png

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

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())

Clipboard Image.png

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

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

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

ibrary(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())

Clipboard Image.png

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())

Clipboard Image.png

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())

Clipboard Image.png

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()
          )


Clipboard Image.png

地图投影方式:

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()
          )

Clipboard Image.png

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


我们EasyCharts团队在网易云课堂等你来上课哦,长按下面的二维码就可进入网易学习课堂。本课程定价为19.9,在2017年1月11日前的打折优惠价为9.9

Clipboard Image.png

Excel商业图表修炼秘笈-基础篇 - 网易云课堂 (二维码自动识别)

简介

真正的高手,不是会制作高难度的图表,而是能把最平常的图表绘制出商务范!小菜鸟,老司机,都不容错过本课程哦!

1. 这是Excel史上最全的基础图表类型讲解;本课程重点讲解了23个基础图表案例,包括Excel自动生成的柱形图,条形图,折线图,面积图,散点图,饼图,圆环图、雷达图,表格,卡片等常用商业图表。

2. 这是Excel史上最全的商业图表风格学习大全;本课程提供了5种商业图表风格的图表,包括《商业周刊》风格,《华尔街日报》风格1和2,《经济学人》风格1和2,共5种经典商业杂志图表的风格。

3. 本课程包括了150多张张商业图表演示Excel源文件。每个基础图表案例至少提供6种以上不同的图表风格演示,供读者选择与学习,可以满足不同人群的审美需求。


EasyCharts团队出品

帅的人都关注了EasyCharts团队^..^~

QQ交流群:454614789

微信公众号:EasyCharts

更多信息敬请查看: http://easychart.github.io/post/Easycharts/

推荐 3
本文由 EasyCharts 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

转,谢谢。
地图数据源给一份

要回复文章请先登录注册