R 创建地区热力图

使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图 对于一门从未接触过的编程语言,相信大家的吐槽点和我一样:又要安装软件,配置环境!其实R语言的安装和环境配置并不复杂,只需要安装两部分内容:R语言+编辑器,关于R语言的安装,大家可以去看这个教程,这哥们儿写的不错R语言的集成开发环境主要是RStudio,大家可以尝试一下,我个人感觉体验不是很好笔者使用的是VSCode内集成jupyter notebook环境,通过安装R语言扩展后使用R内核编程。当然这首先安装Anaconda等环境,大家可以自行搜索安装,这里不再叙述。 阅读详情

一、行政区域数据

地图文件可取自 GADM database (www.gadm.org)。


二、R代码

setwd("D:/gis/shap/CHN_adm_shp")

library("rgdal")

#china_map_adm2 <- readShapePoly("CHN_adm2.shp")
china_map_adm2 <- readOGR("CHN_adm2.shp",use_iconv = TRUE, encoding="UTF-8")

OGR data source with driver: ESRI Shapefile 
Source: "CHN_adm2.shp", layer: "CHN_adm2"
with 344 features
It has 14 fields
Integer64 fields read as strings:  ID_0 ID_1 ID_2 CCN_2 

guangdong_map <- subset(china_map_adm2,NAME_1=="Guangdong")
summary(guangdong_map)

Object of class SpatialPolygonsDataFrame
Coordinates:
        min      max
x 109.66402 117.3107
y  20.22264  25.5203
Is projected: FALSE 
proj4string :
[+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0]
Data attributes:
 ID_0     ISO       NAME_0        ID_1          NAME_1        ID_2          NAME_2    HASC_2  
 49:21   CHN:21   China:21   6      :21   Guangdong:21   43     : 1   Chaozhou : 1   NA's:21  
                             1      : 0   Anhui    : 0   44     : 1   Dongguan : 1            
                             10     : 0   Beijing  : 0   45     : 1   Foshan   : 1            
                             11     : 0   Chongqing: 0   46     : 1   Guangzhou: 1            
                             12     : 0   Fujian   : 0   47     : 1   Heyuan   : 1            
                             13     : 0   Gansu    : 0   48     : 1   Huizhou  : 1            
                             (Other): 0   (Other)  : 0   (Other):15   (Other)  :15            
 CCN_2   CCA_2          TYPE_2                   ENGTYPE_2    NL_NAME_2      VARNAME_2 
 0:21   NA's:21   Dìjíshì  :21   Autonomous Prefecture: 0   潮州市 : 1   Cháozhōu : 1  
                  Dìqu     : 0   League               : 0   东莞市 : 1   Dōngguǎn : 1  
                  Méng     : 0   Municipality         : 0   佛山市 : 1   Fóshān   : 1  
                  Zhíxiáshì: 0   Prefecture           : 0   广州市 : 1   Guǎngzhōu: 1  
                  Zìzhìzhou: 0   Prefecture City      :21   河源市 : 1   Héyuán   : 1  
                                                            惠州市 : 1   Huìzhōu  : 1  
                                                            (Other):15   (Other)  :15  

str(guangdong_map,max.level=2)

Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
  ..@ data       :'data.frame': 21 obs. of  14 variables:
  ..@ polygons   :List of 21
  ..@ plotOrder  : int [1:21] 11 14 10 5 19 18 6 9 7 17 ...
  ..@ bbox       : num [1:2, 1:2] 109.7 20.2 117.3 25.5
  .. ..- attr(*, "dimnames")=List of 2
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot

#新增一列id,值为行名称
guangdong_map@data$id <- rownames(guangdong_map@data)

guangdongdata <- guangdong_map@data
head(guangdongdata)
   ID_0 ISO NAME_0 ID_1    NAME_1 ID_2    NAME_2 HASC_2 CCN_2 CCA_2  TYPE_2       ENGTYPE_2 NL_NAME_2 VARNAME_2 id  zhibiao
42   49 CHN  China    6 Guangdong   43  Chaozhou   <NA>     0  <NA> Dìjíshì Prefecture City    潮州市  Cháozhōu 42 26.44414
43   49 CHN  China    6 Guangdong   44  Dongguan   <NA>     0  <NA> Dìjíshì Prefecture City    东莞市  Dōngguǎn 43 17.47148
44   49 CHN  China    6 Guangdong   45    Foshan   <NA>     0  <NA> Dìjíshì Prefecture City    佛山市    Fóshān 44 18.22510
45   49 CHN  China    6 Guangdong   46 Guangzhou   <NA>     0  <NA> Dìjíshì Prefecture City    广州市 Guǎngzhōu 45 28.24686
46   49 CHN  China    6 Guangdong   47    Heyuan   <NA>     0  <NA> Dìjíshì Prefecture City    河源市    Héyuán 46 20.83134
47   49 CHN  China    6 Guangdong   48   Huizhou   <NA>     0  <NA> Dìjíshì Prefecture City    惠州市   Huìzhōu 47 28.36303

library(broom)
#将空间数据转换为数据框
#guangdongmapdata<- fortify(guangdong_map,region="id")
#guangdongmapdata <- broom::tidy(guangdong_map,region="id")
guangdongmapdata <- broom::tidy(guangdong_map)

Regions defined for each Polygons

dim(guangdongdata)
[1] 21 16

#虚拟一个指标。
guangdongdata$zhibiao<-runif(dim(guangdongdata)[1],10,30)
#将其与几何映射层进行合并:
guangdongnewmapdata<-merge(guangdongmapdata[,c(-4,-5)],guangdongdata[,c("id","ID_2","NL_NAME_2","zhibiao")],by.x="id",by.y="id")

head(guangdongnewmapdata)
  id     long      lat order group ID_2 NL_NAME_2  zhibiao
1 42 116.9841 24.16766     1  42.1   43    潮州市 26.44414
2 42 116.9797 24.16324     2  42.1   43    潮州市 26.44414
3 42 116.9762 24.15879     3  42.1   43    潮州市 26.44414
4 42 116.9694 24.15356     4  42.1   43    潮州市 26.44414
5 42 116.9595 24.15051     5  42.1   43    潮州市 26.44414
6 42 116.9541 24.14843     6  42.1   43    潮州市 26.44414

library("ggplot2")
library("ggthemes")
library("mapproj")

# 绘制地图
ggplot()+
geom_polygon(data=guangdongnewmapdata,aes(x=long,y=lat,group=group,fill=zhibiao),col="grey95")+
scale_fill_gradient(low="white",high="steelblue") +
coord_map("polyconic") +
theme_map()




#添加城市名标签
midpos <- function(x) mean(range(x,na.rm=TRUE))

library("plyr")
centres <- ddply(guangdongnewmapdata,.(NL_NAME_2),colwise(midpos,.(long,lat)))

# centres <- aggregate(cbind(long, lat) ~ NL_NAME_2, data=guangdongnewmapdata, 
#                    FUN=function(x)mean(range(x)))

ggplot(guangdongnewmapdata,aes(long,lat)) + 
geom_polygon(aes(group=group,fill=zhibiao),colour="black") +
scale_fill_gradient(low="white",high="steelblue") +
geom_text(aes(long, lat, label=NL_NAME_2),data=centres) +
theme( 
panel.grid = element_blank(),
panel.background = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.title = element_blank()
)


参考资料

[1] R笔记2:ggplot绘制商务图表--省分市的热力地图. 刘万祥. http://chuansong.me/n/1448600

[2] R语言可视化——关于ggplot所支持的数据地图素材类型. 杜雨. https://zhuanlan.zhihu.com/p/27360411

[3] Making Maps in R. Kevin Johnson. http://www.kevjohnson.org/making-maps-in-r/

[4] Using R — Working with Geospatial Data (and ggplot2). Bethany Yollin. http://mazamascience.com/WorkingWithData/?p=1494

利用R语言与GlobalBurdenR绘制GBD数据热力图:区域疾病负担可视化(GBD系列第十六集) 本文详细介绍了如何利用R语言与GlobalBurdenR工具包绘制GBD数据热力图,实现区域疾病负担的高效可视化。通过分步教程和实战案例,展示了热力图在分析全球疾病负担数据中的独特优势,包括数据预处理、基础与高级热力图绘制技巧,以及多维度分析方法,帮助研究人员快速掌握这一强大的数据可视化工具。 阅读详情

相关推荐

天地图 热力图_R软件绘制热力图

点击“蓝字”关注我们吧“热力图最初来源于网络,是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。在如今的大数据时代,热力图可是直接推动大数据发展的技术。迁徙热力图,爱心大小对应数目大小本期我们将用R来实现绘制区域热力图。在实现过程中需要用到下面几个程序包,大家可以提前下载安装好。install.packages(mapdata)install.packages(mapt...

weixin_39870150的博客 1030

R:广东省GDP热力图

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33743248的博客 1526

R语言实现伦敦各地区预期寿命与全国平均水平差异地理数据可视化(热力图)

R语言实现伦敦各地区预期寿命与全国平均水平差异地理数据可视化(热力图) 使用R语言实现 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 读取csv文件 使用read.csv()直接从web读取并在数字列中清除文本字符 read.csv( ) 与 read_csv( ) 区别 read.csv( ) read_csv( ) R中默认的csv读取方式 readr包提供的读取方式 适用于小文件

weixin_38955499的博客 1412

R语言学习笔记——中国省/市热力图

require(maps) require(ggmap) library(mapdata) library(maps) library(ggplot2) library(mapdata) library(autoimage) library(RColorBrewer) library(ggplot2) library(ggthemes) # devtools::install_github("sjmgarnier/viridis") #这个好像没用到 library(viridis) #devtool

qq_23924691的博客 6366

全国行政区划矢量图(shp格式)

包括全国适量边界,各省市边界,各区县边界。 包括全国适量边界,各省市边界,各区县边界。 包括全国适量边界,各省市边界,各区县边界。 包括全国适量边界,各省市边界,各区县边界。

SSRS 中国空间数据地图CHN_adm.zip

SSRS,中国空间数据地图,官方下载地址为:http://www.diva-gis.org/gData

R语言—热力地图复合气泡饼图

之前有整理R语言地图的绘制思路,主要包括三种方式,但是在实际应用中,因为不同的专业一般只会用到其中的一种,所以我最常用到的就是从第三方下载地理的空间多边形数据,然后使用ggplot2包做出地图即可。不过上篇写得相对理论些,我更倾向于从实践出发,以目标为导向,以实践学习为目的。 这次的图形时带有扇形图的热力地图,描述起来就是在热力地图的特定位置添加上扇形图。扇形图的半径表示数据的大小,扇形图中的每个...

明月夜雨微凉的博客 1万+

2019年全国区县行政区划shap文件.rar

2019年全国行政区划区县级shap文件最新包括全国2019年全国行政区划区县级shap文件最新包括全国2019年全国行政区划区县级shap文件最新包括全国

R语言画个中国地图使用shp文件

R语言画个中国地图,使用shp文件 前几天帮人用R语言画个一个河北省的地图,河北省各个市被填充上颜色,颜色的深浅和这个市的GDP有关系,效果如下: 然后加上各个城市的名字并加上指北针、再把背景的网格去掉,效果如下: 那么如何做的?? library(rgdal) library(ggplot2) library(maptools) library(mapproj) library(ggsn) ......

yuanzhoulvpi的博客 1万+

CHN_adm.zip

CHN_adm 地图 我在python可视化画地图的时候用到的,区别于用svg来画地图。不好意思我也不知道为什么系统会让它变成50分下载,我当时明明设置的是2分……对那些50分下载的同学们表示很抱歉!

中国边界矢量数据.rar_CHN_adm1矢量图_shp数据_site:www.pudn.com_中国边界矢量_全国 shp

可用于科学研究或者基于数据的二次开发的全国主要城镇shp

如何在R中绘制热力地图

一、首先绘画出地图map 地图(map) 按一定的比例运用符号、颜色、文字注记等描绘显示地球表面的自然地理、 行政区域、社会经济状况的图形。 地图绘制思路: ① 绘制需要展示的地图,获取地图对象,获取每个区域的名字以及顺序; ② 在每个区域的名字和顺序后面,加上我们需要展示的数据以及经纬度; ③ 根据数据的大小,设置每个区域展示的颜色的深浅,以区分每个区域; √ 对数据进行标准化

Erin的博客 1万+

Mac Pro M2芯片成功安装麒麟银河高级服务器虚拟机

本人用的是1、Macbook m2pro芯片 16G+5123、安装homebrew、wegt、qemu。

vagatable_XX的博客 3301

matlab画热力网格图

Matlab做热力图 内容 环境配置 加载数据以进行可视化 简单的热图】 轴刻度和标签 热图文字标签 缩放,平移和数据光标 更改颜色图 图上有多个热图 强制色阶 缺失值 彩条 网格线 1 配置环境 将heatmaps文件夹添加到C:\Program File...

猪猪侠 1万+

@transactional滥用导致数据源连接池耗尽问题

@transactional滥用导致数据源连接池耗尽问题

qq_43205267的博客 1201

PostgreSQL14 离线安装全攻略:从下载到配置详解

本文详细介绍了PostgreSQL14在无网络环境下的离线安装全流程,涵盖RPM包与源码编译两种主流方法。文章重点解析了安装前的系统环境检查、依赖包准备、数据库初始化、远程访问配置以及安装后的关键检查与性能调优,旨在帮助运维和开发人员在离线服务器上高效、稳定地部署PostgreSQL14数据库。

p5l2m9n4o6q的博客 722

c++桌面应用绘制图片api_R软件绘制热力图

点击“蓝字”关注我们吧“热力图最初来源于网络,是以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示。在如今的大数据时代,热力图可是直接推动大数据发展的技术。迁徙热力图,爱心大小对应数目大小本期我们将用R来实现绘制区域热力图。在实现过程中需要用到下面几个程序包,大家可以提前下载安装好。install.packages(mapdata)install.packages(mapt...

weixin_39854867的博客 667

在线绘制富集分析多组气泡图和单细胞分析marker基因矩阵气泡图

常规的GO或者KEGG通路富集分析结果通常以气泡图的形式展示,然而这个气泡图仅仅是一个比较的结果,如果想在一张图上展示多个比较的结果,就需要用到多组气泡图(图1,左侧)。 单细胞RNA-seq分析结果中,矩阵形式的气泡图可以很好地展示marker基因(X轴)在不同cluster(Y轴)中的表达情况(图1,右侧)。

微生信 3667

R语言绘制分块区域热力图

REmap包绘制2020年我国31个省市自治区GDP总量区域热力图 今天用的是REmap包中的remapC()函数绘制分块区域热力,下面以2020年我国各省31各省市自治区GDP总量数据(单位是亿元)为例画一个分块区域热力图,展现不同省市GDP总量分布效果。 library(REmap) options(remap.js.web=T) ##创建数据框 city<-c("广东","江苏","山东","浙江","河南","四川","福建","湖北","湖南","上海","安徽","河北","北京","陕

weifanbio的博客 2894

柔性OLED屏幕绿线故障的激光修复技术解析

OLED显示技术作为新一代显示方案,其主动矩阵驱动原理通过TFT背板控制每个像素的发光。在柔性屏幕应用中,微米级数据线路的物理损伤会导致显示异常,表现为贯穿屏幕的绿线故障。激光微焊技术凭借其微米级加工精度,成为修复这类精密电路损伤的理想方案。该技术通过纳秒级脉冲激光实现金属线路的精准重熔,在手机维修、显示面板制造等领域具有重要应用价值。特别是在折叠屏、曲面屏等柔性显示设备维修中,激光修复技术能有效解决因反复弯折导致的数据线断裂问题,配合光学定位系统和参数优化,修复成功率可达85%以上。

weixin_29168153的博客 324

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7598

SQL语言的热力图

热力图是一种使用颜色表示数据值的可视化工具。它通过将不同的颜色用于不同的数据值和频率,使得数据的模式和趋势一目了然。热力图在许多领域中得到广泛应用,如网站分析、用户行为分析、地理信息系统(GIS)等。二维热力图:在XY坐标系中表示两个变量的关系,常用于观察变量之间的相关性。地理热力图:通过地理坐标在地图上表示数据的分布,常用于展示区域内的人口密度、销售额等指标。

2501_91186062的博客 368

倍福CX9020(WINCE 7)控制器使用方法和操作

CX9020系列是倍福控制器中较为经济的,操作系统为Windows Embedded Compact 7(简称WINCE7或WINEC7),相对高端控制器(WINES7以上系统),操作系统古老而简洁,上位机软件的编写困难很多,本文是笔者在使用过程中摸索的流程,旨在为CX9020系列的新用户提供参考,也可供其他CE系统的控制器参考。本文中大部分截图采用倍福中国的培训文档,这是由于笔者是在流程走通后再写这篇文章,不想再恢复出厂设置走一遍截图。因笔者在写这篇文章时使用倍福控制器经验并不丰富,难免有纰漏,请读者批评

weixin_41883890的博客 4287

推荐一款神奇的R包:d3heatmap——交互式热力图的魅力

推荐一款神奇的R包:d3heatmap——交互式热力图的魅力 如果你在寻找一种能够展示复杂数据关系的工具,那么这个开源项目将会是你的新宠!d3heatmap是一款基于R的htmlwidget,它利用强大的D3.js库来创建动态且交互性强的热力图。虽然目前项目并不再积极开发,但依然可以接受Pull Request,而且还有其他类似项目如heatmaply可供选择。 项目简介 d3heatmap允许你...

gitblog_00053的博客 599

第3.4章 机器人第三方库实战总结(四):G2O优化库从入门到实战(附SLAM实例代码)

自定义边同样是满足复杂应用需求的重要手段。自定义边时,需要明确边所连接的顶点类型以及边所表示的误差项的计算方式。假设我们要定义一条边,用于约束两个上述自定义顶点之间的相对位姿和传感器偏移量关系。我们可以这样定义边类:public:// 计算误差// 计算雅可比矩阵// 读盘和存盘函数,这里暂不实现。

行知SLAM 360

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

基于R语言绘制 全国及各省级行政区地图 之人口热力图

今天为大家分享的是基于R语言的中国省区热力图(可以是人口,财政收入,科技投入,公路里程,农业产值等等)。

YOUYU0101的博客 1273

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 在 QGIS 地图中显示 GPS 点、线集
下一篇: inode 索引结点算法,EXT4 源码解析
rootcn
博客等级 码龄23年 27粉丝 91原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值