闲着无聊,画着玩~还是实际工作中能够用到,才会更加熟悉。
还是要专注更重要的部分,这些当做消遣和游戏吧
主要参考资料:
刘万祥老师的新浪博客
R语言中文社区的知乎专栏
发现一个坑:bou2_4p.dbf、bou2_4p.shx、bou2_4p.shp三个文件要放在一个文件下,虽然读取的是bou2_4p.shp

code

# 画省热力图 -------------------------------------------------------------------
##.shp shape文件
###china_map@data:数据框:面积、周长
# bou代表边界的意思,数字1~4代表国家、省、市、县的4级行政划分
# 4m代表比例是400万分之一,这个比例的图形是公开的
#数据其他的格式并不知道是什么鬼啊,只能依葫芦画瓢咯
library(maptools)
library(rgdal)
china_map = readOGR(dsn = "./ggplot2/bou2_4p.shp",stringsAsFactors=FALSE)#读取中国地图空间数据
plot(china_map)
# 但地图投影方式不对,看起来太扁了,完全不是我们常见的昂首雄鸡状。
# 加载ggplot2包,用ggplot绘制,并使用polyconic投影方式,显示正常。
library(ggplot2)
ggplot(china_map,aes(x=long,y=lat,group=group)) +geom_polygon(fill="white",colour="grey") +coord_map("polyconic")############################################################
x <- china_map@data          #读取行政信息
xs <- data.frame(x,id=seq(0:924)-1)          #含岛屿共925个形状
china_map1 <- fortify(china_map)           #转化为数据框,怎么转化的不知道
library(plyr)
china_map_data <- join(china_map1, xs, type = "full")       #合并两个数据框
library(readxl)
mydata <- read_excel("./ggplot2/data.xls",sheet=2,col_names = TRUE)
mydata <- as.data.frame(mydata)
china_data <- join(china_map_data, mydata, type="full")ggplot(china_data, aes(x = long, y = lat, group = group, fill = number)) +geom_polygon(colour="grey40") +scale_fill_gradient(low="white",high="steelblue") +  #指定渐变填充色,可使用RGBcoord_map("polyconic")        #指定投影方式为polyconic,获得常见视角中国地图
#
# R笔记1:ggplot绘制商务图表--中国分省热力地图好,看到填色地图了,这个效果已经比很多教程里的都要好了。
# 但图中的背景色、坐标轴、经纬线都是不需要的,图例也可以放到左下角,用theme命令清除:
ggplot(china_data, aes(x = long, y = lat, group = group,fill = number)) +geom_polygon(colour="grey40") +scale_fill_gradient(low="white",high="steelblue") +  #指定渐变填充色,可使用RGBcoord_map("polyconic") +       #指定投影方式为polyconic,获得常见视角中国地图theme(               #清除不需要的元素panel.grid = element_blank(),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank(),legend.position = c(0.2,0.3))# 4、添加省名标签
# 有时候需要显示省名标签,特别是给老领导看。可根据每个省形状的经纬度平均值求近似中心位置,标注省名。
#同时添加数值会出现覆盖叠加的情况
midpos <- function(x) mean(range(x,na.rm=TRUE)) #取形状内的平均坐标
centres <- ddply(china_data,.(province),colwise(midpos,.(long,lat)))
prov_num <- merge(x=mydata[,c(2,3)],y=centres,by.x="province")#中心位置经纬度、具体数值
ggplot(china_data,aes(long,lat))+       #此处语法与前面不同,参考ggplot2一书P85geom_polygon(aes(group=group,fill=number),colour="black")+scale_fill_gradient(low="white",high="steelblue") +coord_map("polyconic") +geom_text(aes(label=province),data=centres) +geom_text(aes(label=number),data=prov_num) +theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank())#解决标签偏离问题,省会又不一定在省份的中心区域,效果感觉还不如之前
province_city <- read.csv("./ggplot2/chinaprovincecity.csv")  #读取省会城市坐标
ggplot(china_data,aes(long,lat))+geom_polygon(aes(group=group,fill=number),colour="grey60")+scale_fill_gradient(low="white",high="steelblue") +coord_map("polyconic") +geom_text(aes(x = jd,y = wd,label = province), data =province_city,size=3)+theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank())#叠加气泡图
ggplot(china_data, aes(long, lat)) +geom_polygon(aes(group = group, fill = number), colour = "grey60") +scale_fill_gradient(low = "white", high = "steelblue") +coord_map("polyconic") +geom_text(aes(x = jd, y = wd, label = province),data = province_city,size = 3) +theme(panel.grid = element_blank(),panel.background = element_blank(),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank()) +geom_point(data = prov_num,mapping = aes(x = long, y = lat, size = number),colour = 'red')

result

ref

[1] 手把手教你使用ggplot2绘制中国地图
[2] R笔记1:ggplot绘制商务图表–中国分省热力地图

ggplot2画中地图相关推荐

  1. pyecharts画中国地图(省、市):如何调整渐变颜色、浏览器中大小、生成的HTML打开是空白无法显示的问题

    最近在做一个数模题,需要中国地图的数据可视化,了解到pyecharts,踩了一些坑,在此记录 ------------------------- 版本问题 现在网上大多数文章都是用的老版本,比如0.5 ...

  2. html5调颜色浏览器不显示,pyecharts画中国地图(省、市):如何调整渐变颜色、浏览器中大小、生成的HTML打开是空白无法显示的问题...

    最近在做一个数模题,需要中国地图的数据可视化,了解到pyecharts,踩了一些坑,在此记录 ------------------------- 版本问题 现在网上大多数文章都是用的老版本,比如0.5 ...

  3. python画交互式地图_使用Python构建交互式地图-入门指南

    python画交互式地图 Welcome to The Beginner's Guide to Building Interactive Maps in Python 欢迎使用Python构建交互式地 ...

  4. echarts 山东地图_用Python画中国地图,实现各省份数据可视化

    第一步:安装pyecharts pyecharts是一款将python与echarts结合的强大的数据可视化工具,本文使用了0.1.9.4版本 pip install pyecharts==0.1.9 ...

  5. python 可视化 画直线_用Python画江苏省地图,实现各地级市数据可视化

    前言 万万没想到我昨天发布的用Python画中国地图,实现各省份数据可视化这篇文章获得了很多朋友的喜欢,目前已获得了66次转发,314次收藏,也让我涨了60个左右粉丝. 小嘚瑟 虽然这点成绩跟很多大V ...

  6. echarts 画中国地图

    数据可视化平台,中国各省数据和坐标 阿里云可视化 效果 使用echart画中国地图,步骤如下 1.安装依赖 npm i echarts@4 创建一个js文件 当你可以访问https请求的时候则使用,如 ...

  7. R语言可视化——ggplot2画回归曲线

    目录 0引言 1.构造回归数据 2.画图 2.1载入包 2.2 准备数据添加散点 2.3添加回归线 2.5 添加公式R方 2.6 添加方差分析表 2.6 回归数据调整 3.总结 0引言 在数据可视化- ...

  8. C\C++开发的经典魔塔小游戏--(2)制作地图以及画出地图

    这篇文章主要介绍如何制作以及画出地图,顺便会填充一些个人认为有趣的东西介绍给大家. C用来写图形化界面其实是一个很费力的过程,但是面向过程的语言结构,让人在做一些逻辑处理的时候更加的清晰,而不像C++ ...

  9. html如何画简单地图,最简单的地图简笔画怎么画

    最简单的地图简笔画怎么画以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最简单的地图简笔画怎么画 多元输入法(多元汉字与 ...

最新文章

  1. [密码学] DES(二)
  2. 1108轮播图和定时器this问题
  3. zoj 3386 Trick or Treat 三分 求最大值的 最小值
  4. 跳房子(ybtoj-单调队列)
  5. react-native icon使用方式
  6. 【Java】Java 8 新特性-----Lambda 表达式
  7. 计算机发展趋势 五笔型码,计算机五笔识别码字有哪些
  8. 思维导图模板怎么下载
  9. vm内核参数之缓存回收drop_caches
  10. Elasticsearch开启安全认证详细步骤
  11. java 8 stream 对集合的简单操作
  12. 在Ubuntu/Linux环境下开放3306端口
  13. 在c语言中 实参与其对应的形参各占独立的存储单元,以下正确的说法是( )。在C语言中: A.实参和与其对应的形参各占用独立的存储单元...
  14. [MySQL]Software caused connection abort: recv failed 问题分析与解决
  15. Discuz!X3.4全新安装详细图文教程
  16. NIST随机数测试软件下载,安装、和使用,分析方法最新版(19年4月)
  17. 什么是回调函数(JS)
  18. 不成熟的梦想家 (未熟DREAMER)
  19. javafx-显卡有关的jvm加速
  20. 人工智能算法之梯度下降法、协同过滤、相似度技术、ALS算法(附案例分析)、模型存储与加载、推荐系统的冷启动问题

热门文章

  1. elasticsearch报错index read-only
  2. 自动驾驶模拟试验构成要素和验证
  3. vot2016 toolkit工具箱配置
  4. 化工安全生产管理平台:融合重大危险源监控预警、可燃有毒气体检测报警、企业安全风险分区于一体
  5. Linux学习系列五:Shell命令脚本的基本语法
  6. 制作一个旋转的三棱锥
  7. 涨知识,2022上半年软考准考证打印问题解答
  8. Go语言爬虫框架之Colly和Goquery
  9. 云计算与网络计算、全局计算、互联网计算等相比,有哪些特点,具有哪些优势?
  10. 激光SLAM导航系列(五)局部路径规划