这篇文章主要介绍“R语言可视化实现地图与气泡图的绘制”,在日常操作中,相信很多人在R语言可视化实现地图与气泡图的绘制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”R语言可视化实现地图与气泡图的绘制”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
今天跟大家分享如何在地图上进行散点图、气泡图绘制。
昨天跟大家介绍了ggplot函数进行地图绘制的原理,通过轮廓点和分组来定义每一个地区(国家边界),通过多边形填充来完成区域填色。
ggplot的图层叠加原理晕允许我们在坐标系统的叠加多个图层;
所以在地图上叠加散点、甚至气泡可以很容易的实现:
包的导入:
library(maptools)
library(ggplot2)
library(plyr)
导入地理信息数据:
china_map <- readShapePoly("c:/rstudy/bou2_4p.shp") # 读取地图信息数据
china_map1 <- fortify(china_map) #转化为数据框
业务数据导入及作图数据合并:
mydata <- read.csv("c:/rstudy/geshengzhibiao.csv") #读取业务数据
province_city <- read.csv("c:/rstudy/chinaprovincecity.csv") #读取省会城市坐标
china_data <- join(province_city, mydata, type="full") #合并两个数据框
地图语句:
ggplot()+
geom_polygon(data=china_map1, aes(x=long, y=lat, group=group), fill="grey95", colour="grey60")+
geom_point(data=china_data, aes(x = jd,y = wd, size=zhibiao, fill=zhibiao2, alpha=0.3), shape=21, colour="black")+
scale_size_area(max_size=8)+
scale_fill_gradient2(low="DarkCyan", mid="Azure", high="Sienna", midpoint=median(na.omit
(china_data$zhibiao2)))+
coord_map("polyconic") +ggtitle("Heat&Bubble plot")+
theme(
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank(),
legend.position = "none"
)
以上语法中,使用了geom_polygon()多边形函数来定义并填充地图背景 (注意里面的fill参数(指定地图区域颜色),colour参数指定多边形(也就是地区轮廓线)边框颜色),然后通过geom_point()函数添加散点图图层。
图层中指定数据源为合并后的业务数据,散点面积(大小)用zhibiao1来映射,气泡图颜色用zhibiao2来映射(本来散点是只有点颜色(使用colour控制,没有填充色的,可是当给散点指定其形状后,散点就有了面积属性可以使用fill进行颜色填充),气泡的轮廓线用colour来指定)。
之后的scale_size_area()和scale_fill_gradient2()是对前面geom_point内的fill与size两个标度进行的深度调整,scale_size_area()告诉软件散点大小与面积要严格的与指标1具体数值大小成比例,并规定面积最大为25。
scale_fill_gradient2()定义了一个三色渐变,low、mid、high分别由一个颜色代码控制,同时均值颜色要映射给指标2的平均数。
最后的ggtitle定义主题,theme内的参数清除掉所有图层上的无关元素(背景、网格系统、横纵轴标签、刻度线、轴标题、图例)
到此,关于“R语言可视化实现地图与气泡图的绘制”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。