美文网首页
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