您好,登录后才能下订单哦!
本篇内容介绍了“R语言可视化实现多边形与数据地图填充”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
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函数中一大类比较高阶的图表,可以做出很多让人眼花缭乱、令人尖叫的作品来,感兴趣的小伙伴儿赶快学起来。
“R语言可视化实现多边形与数据地图填充”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。