[关闭]
@Jack00878 2016-08-21T13:58:49.000000Z 字数 1899 阅读 746

用R语言绘制地理热图

R语言学习


参考来源:http://blog.sina.com.cn/s/blog_6bc5205e0102vma9.html
数据来源:中国地图数据文件——可到微信公众号 iamExcelPro 发送 shapefile 获得下载地址
各省、直辖市经纬度坐标——可到微信公众号 iamExcelPro 发送 shapefile 获得下载地址
业务数据为2014年各省GDP——国家统计局

设置工作目录

  1. ###############设置工作目录#####################
  2. setwd("D:/RScript")
  3. ##################################################
  4. ##############加载程序包,读取地图数据##############
  5. library("maptools")
  6. library(ggplot2)
  7. library(plyr)
  8. china_map = readShapePoly("bou2_4p.shp") # 读取地图空间数据
  9. ###################数据预处理#######################
  10. x <- china_map@data #读取行政信息
  11. xs <- data.frame(x,id=seq(0:924)-1) #含岛屿共925个形状
  12. china_map1 <- fortify(china_map) #转化为数据框
  13. china_map_data <- join(china_map1, xs, type = "full") #合并两个数据框
  14. ##读取指标数据,csv格式
  15. mydata <- read.csv("geshengzhibiao.csv")
  16. china_data <- join(china_map_data, mydata, type="full") #合并两个数据框
  17. ####################绘制地图,并清除背景色、坐标轴、经纬线,图例放左下角##########
  18. province_city <- read.csv("chinaprovincecity.csv") #读取省会城市坐标
  19. china_data <- join(china_data, province_city, type="full") #合并两个数据框
  20. ##图1:用数据填充,GDP量越大颜色越深
  21. pp <- ggplot(china_data,aes(long,lat))+
  22. labs(title="2014年全国各省GDP(无香港和台湾数据)单位:亿元")+
  23. geom_polygon(aes(group=group,fill=X2014年),colour="grey60")+
  24. scale_fill_gradient(name="2014年GDP",low="white",high="steelblue") +
  25. coord_map("polyconic") +
  26. #coord_map(projection = "azequidistant")+
  27. geom_text(aes(x = jd,y = wd,label = province), data =province_city)+
  28. theme(
  29. #panel.grid = element_blank(),
  30. #panel.background = element_blank(),
  31. #axis.text = element_blank(),
  32. #axis.ticks = element_blank(),
  33. axis.title = element_blank(),
  34. legend.position = c(0.2,0.3)
  35. )
  36. pp
  37. ##图2:将数据映射为散点绘制在地图上
  38. pp <- ggplot(china_data,aes(long,lat,group=group))+geom_path()
  39. pp <- pp+labs(title="2014年全国各省GDP(无香港和台湾数据)单位:亿元")
  40. pp <- pp+coord_map("polyconic")
  41. pp <- pp+geom_point(data=china_data,aes(x=jd,y=wd,size=X2014年),color="steelblue") #aes() mapping the data to the graph
  42. pp <- pp+scale_size_continuous(name="2014年GDP")
  43. #pp <- pp+scale_colour_continuous(low="white",high="black")
  44. pp <- pp+ theme(
  45. axis.title = element_blank(),
  46. legend.position = c(0.2,0.3)
  47. )
  48. pp

结果类似下图,由于不是高级会员,不能上传本地图片

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注