美文网首页
R-数据可视化系列-地图+气泡图

R-数据可视化系列-地图+气泡图

作者: Cathy92 | 来源:发表于2017-04-05 17:44 被阅读0次

很多时候我们需要表示不同地区的某个值,那表示的方法有两种,第一种是地图+热力图,用地图上的颜色表示值得大小,另一种是地图+气泡图,用气泡大小来表示值,当然颜色也可以表示其他参数。

本篇主要讲解地图+气泡图如何画出

数据准备:

1、地图所需数据:全国地图GIS文件

2、气泡图所需数据:城市名称,经度,维度,具体数值,如图

实现原理:

将图分解开来,发现是地图+气泡图,我们需要画出地图。那如何讲气泡图展示在地图上呢,将位置对应到地图上的x,y轴,也就是经度和维度,然后就可完美的画图地图了

R代码:

#chinamap

setwd("C:\\Users\\a\\Desktop")

library(gpclib)

library(ggplot2)

library(maps)

library(maptools)

#读取各省的边界数据等

shape <- readShapePoly("socialbeta/china-province-border-data/bou2_4p.shp")

#转化数据格式,可以用fortify()函数替代

shape@data$id <- rownames(shape@data)

shape.fort <- fortify(shape, region='id')

shape.fort<-shape.fort[order(shape.fort$order), ]

#获取气泡图数据

city<-read.csv('大众点评杭州民宿用户画像.csv')

#建立函数,将背景全部取消

theme_clean <- function(base_size=12){

require(grid)

theme_grey(base_size)

theme(

axis.title = element_blank(),

axis.text = element_blank(),

panel.background = element_blank(),

panel.grid = element_blank(),

axis.ticks.length = unit(0, "cm"),

axis.ticks.margin = unit(0, "cm"),

panel.margin = unit(0, "lines"),

plot.margin = unit(c(0,0,0,0), "lines"),

complete = TRUE

)

}

#画图地图+气泡图

mymap = ggplot(data = shape.fort) +

geom_polygon(aes(x = long, y = lat, group = group), colour = "grey",fill='white')

mymap2<-mymap + coord_map()+geom_point(data=city,aes(x=经度,y=维度,size=人数,color=地域))

#添加标签,取消图例(因为图例太长。。),保存图片

map<-mymap2

+ theme_clean()+theme(legend.position='none')+geom_text(data =city,

aes(x=经度,y=维度,label =地域),vjust=-0.5,hjust=-1,size=1.5)

ggsave('map.png',map)

最终效果,由于数据相差较大,且集中在江浙沪,故其他地区的气泡较小

相关文章

网友评论

      本文标题:R-数据可视化系列-地图+气泡图

      本文链接:https://www.haomeiwen.com/subject/mfdxattx.html