使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图

R语言绘制中国省份地区热力图教程

1、R语言的安装和编辑器的选择

对于一门从未接触过的编程语言,相信大家的吐槽点和我一样:又要安装软件,配置环境!其实R语言的安装和环境配置并不复杂,只需要安装两部分内容:R语言+编辑器,关于R语言的安装,大家可以去看这个教程,这哥们儿写的不错https://blog.csdn.net/xhmico/article/details/122443660

R语言的集成开发环境主要是RStudio,大家可以尝试一下,我个人感觉体验不是很好

笔者使用的是VSCode内集成jupyter notebook环境,通过安装R语言扩展后使用R内核编程。当然这首先安装Anaconda等环境,大家可以自行搜索安装,这里不再叙述。

其次安装所需的全部插件,如下图所示:

全部安装完成后,即可新建一个.ipynb文件,选择R内核进行代码编写。

2、使用hchinamap库绘制热力图

hchinamap是一个专门用于绘制中国地理数据可视化的R包,它提供了方便的接口来创建各种地图,包括省级和市级的热力图。

首先,我们需要安装并加载hchinamap库:

r 复制代码
install.packages("hchinamap")

安装完成后,使用library函数将其加载到R会话中:

r 复制代码
library(hchinamap)

为了绘制热力图,我们需要准备两组数据:一组是中国各省市的名称,另一组是与这些省市相关的数值数据。数据可以根据实际需求来确定,比如人口、经济指标、环境数据等。数据可以是csv文件,txt文件等。

但是这样的文件还需要单独去读取数据中的列,还有一个简单的方式是直接输入城市名和对应的值,这种方式适用于数据量小,数据复杂度低的情况,以下是一个示例:

r 复制代码
# 要绘制的省份或城市
names <- c('北京', '天津', '上海', '重庆', '河北')
# 对应的数值数据
values <- c(4805, 3450, 4808, 3650, 1505)
使用hchinamap函数来绘制热力图。我们可以设置各种参数来自定义地图的外观,包括地图的宽度、高度、标题、颜色等。

# 导包
library(hchinamap)
library(IRdisplay)
library(htmlwidgets)
# 生成地图
map_widget <- hchinamap(name = c('北京', '天津', '上海', '重庆', '河北'), #要绘制的省份或城市
                        value = c(4805, 3450, 4808, 3650, 1505),#要可视化的数据
                        width = "100%",
                        height = "650px",
                        title = "数据采集位置分布热力图",
                        region = "China",
                        minColor = "#F8F8F8",
                        maxColor = "#02858C",
                        itermName = "指标",
                        hoverColor = "#f6acf5")

所有可配置参数含义介绍:

r 复制代码
name: 一个字符向量,包含要在地图上表示的省份或城市名称。这个参数用于指定哪些地理位置将在地图上展示。
value: 一个数值向量,与name中的省份或城市一一对应。这些数值决定了地图上每个位置的颜色深浅,反映了数据的大小或密度。
width: 指定地图的宽度。可以是具体的像素值或百分比,定义了地图在页面上占据的水平空间。
height: 设置地图的高度。同样可以是像素值或百分比,确定了地图的垂直尺寸。
title: 地图的标题。这个参数提供了一个标题文本,显示在地图的顶部,用于描述地图的内容或目的。
minColor: 表示数值最小点的颜色。在热力图中,此颜色用于表示相对较低的数据值。
maxColor: 代表数值最大点的颜色。此颜色用于热力图中相对较高的数据值。
region: 指定要绘制的区域。这个参数定义了地图的地理范围,例如一个省份或整个国家。
theme: 地图的主题名称。这个参数可以改变地图的整体样式,包括颜色、字体和布局。
titleAlign: 标题的水平对齐方式。可以设置为居中、左对齐或右对齐。
titleSize: 标题的字体大小。指定了标题文本的大小。
titleColor: 标题的颜色。设置标题文本的颜色。
subtitle: 地图的副标题。提供额外的描述性文本,通常显示在标题下方。
subtitleAlign: 副标题的水平对齐方式。
subtitleSize: 副标题的字体大小。
subtitleColor: 副标题的颜色。
legendLayout: 图例的布局方式,决定了图例是水平还是垂直展示。
legendAlign: 图例的水平位置,如居中、左对齐或右对齐。
legendTitle: 图例的标题。这个文本描述了图例中的符号或颜色代表的含义。
legendVerticalAlign: 图例的垂直位置,如顶部、底部或居中。
hoverColor: 鼠标悬停时的颜色。指定当用户将鼠标悬停在地图的某个区域时,该区域显示的颜色。
itermName: 鼠标悬停时显示的数据名称。当用户将鼠标悬停在地图的某个区域时,显示相关数据的名称或描述。
hchinamap库提供了多种自定义选项,允许用户根据自己的需求调整地图的样式,以适应不同的数据集和可视化目标以及不同的展示场景,如果数据比较完整的情况下,绘制出来的可视化效果如图所示:

画出来的中国省份热力图示例

通过调整minColor和maxColor参数,可以改变生成地图的颜色范围,比如要画一个青色的省份热力图:

hchinamap还支持创建交互式地图,用户可以通过鼠标悬停在特定区域上来获取更多信息。例如,可以设置hoverColor参数来改变鼠标悬停时的颜色,或者在itermName中提供更多描述性的信息,使地图的交互性更强。

除此之外,还可以去绘制某个省份的地图,比如我要绘制一个河北省的人口分布热力图,那么只需要将region参数改成"Hebei",并将name和value的值改成河北省各个市的名称以及对应的数据即可,代码如下:

r 复制代码
# 导包
library(hchinamap)
library(IRdisplay)
library(htmlwidgets)
# 河北省主要城市名称
cities_hebei <- c('石家庄', '唐山', '秦皇岛', '邯郸', '邢台', '保定', '张家口', '承德', '沧州', '廊坊', '衡水', '定州', '辛集', '雄安新区')
# 对应的2020年常住人口数据
values_hebei <- c(10640458, 7717983, 3136879, 9413990, 7111106, 9242610, 4118908, 3354444, 7300783, 5464087, 4212933, 1095986, 594628, 1205440)
# 生成河北省的热力图
map_widget_hebei <- hchinamap(
    name = cities_hebei,    # 河北省城市名称
    value = values_hebei,   # 对应的数值数据
    width = "100%",         # 地图的宽度
    height = "650px",       # 地图的高度
    title = "河北省人口分布热力图", # 地图标题
    region = "Hebei",       # 要绘制的区域,这里为中国
    minColor = "#fee08b",   # 热力图的最小值颜色
    maxColor = "#d73027",   # 热力图的最大值颜色
    itermName = "指标",     # 鼠标悬停时显示的项目名称
    hoverColor = "#f6acf5"  # 鼠标悬停时的颜色
)
# 保存为 HTML 文件
saveWidget(map_widget_hebei, file = "hebei.html")
# 在Jupyter Notebook 中显示 HTML 文件
IRdisplay::display_html(file = "hebei.html")

绘图效果如下:

通过本节的介绍,大家应该能够理解如何使用R语言和hchinamap库来创建中国地图的热力图,希望对大家有帮助,关于安装教程的事情其实是最麻烦的,大家多去搜一些教程,其实使用RStudio也是完全没问题的。

相关推荐
DM今天肝到几点?40 分钟前
【7.26-7.28胜算云AI日报:首个开源3D世界生成模型腾讯混元、微软预示 8 月 GPT-5 发布、Nemotron推理、商汤悟能、DM夺金】
人工智能·vscode·microsoft·3d·ai·chatgpt
csdn_aspnet8 小时前
如何从自定义或本地仓库安装 VsCode 扩展
ide·vscode
患得患失9498 小时前
【前端】【vscode】【.vscode/settings.json】为单个项目配置自动格式化和开发环境
前端·vscode·json
UQWRJ8 小时前
菜鸟教程R语言一二章阅读笔记
开发语言·笔记·r语言
CN-Dust8 小时前
【VSCode】复制到下一行快捷键
ide·vscode·编辑器
FinAnalyzer15 小时前
如何在 InsCodeAI 上搭建并使用 Jupyter Notebook 环境?
ide·python·jupyter
SoveTingღ16 小时前
【开发环境配置】VScode里面配置cmake遇到的问题
c语言·vscode·cmake·嵌入式软件·开发环境配置
vsropy16 小时前
VScode输出中文乱码问题解决
ide·vscode·编辑器
写点什么啦18 小时前
一键修复ipynb,Jupyter Notebook损坏文件
ide·python·jupyter
DIY全栈开发18 小时前
ESP32S3 Ubuntu vscode如何使用USB-JTAG调试
linux·vscode·ubuntu