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

news2024/12/28 5:55:21

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库:

install.packages("hchinamap")

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

library(hchinamap)

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

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

# 要绘制的省份或城市
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")

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

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的值改成河北省各个市的名称以及对应的数据即可,代码如下:

# 导包
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也是完全没问题的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1388872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第15届蓝桥STEMA测评真题剖析-2023年12月17日Scratch编程初中级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第166讲。 第15届蓝桥第3次STEMA测评&#xff0c;这是2023年12月17日举办的STEMA&#xff0c;比赛仍然采取线上形式。这…

ESP32-Touch(Arduino)

Touch Touch传感器是一种外围设备&#xff0c;具有内部振荡器电路&#xff0c;可在固定时间段内测量相应GPIO引脚上的充电/放电频率。 因此&#xff0c;这些触摸传感器也被称为电容式传感器。例如&#xff0c;如果您触摸这些引脚中的任何一个&#xff0c;手指电荷将改变这个周…

Vue学习计划-Vue3--核心语法(十)Proxy响应式原理

Proxy响应式原理 1.Vue2的响应式 实现原理&#xff1a; 对象类型&#xff1a;通过Object.defineProperty()对属性的读取、修改进行拦截&#xff08;数据劫持&#xff09;数组类型&#xff1a;通过重写更新数组的一系列方法来实现拦截&#xff0c;&#xff08;对数组的变更方法…

【数学建模】图论模型

文章目录 图的基础理论及networkx简介图的基本概念图的表示及Networkx简介图的表示NetworkX简介 最短路算法及其Python实现固定起点到其余各点的最短路算法每对顶点间的最短路算法最短路应用 最小生成树算法及其networkx实现基本概念最小生成树算法最小生成树应用 匹配问题最大…

【JavaEE进阶】 利用Spring简单实现加法计算器和用户登录

文章目录 &#x1f38d;序言&#x1f333;加法计算器&#x1f6a9;准备工作&#x1f6a9;约定前后端交互接⼝&#x1f332;后端服务器代码的书写 &#x1f334;用户登录&#x1f6a9;效果展示&#x1f6a9;准备工作&#x1f6a9;约定前后端交互接⼝&#x1f388;需求分析&#…

【leetcode刷题】模拟专题

模拟 一、替换所有的问号1、题目链接2、解析3、代码 二、提莫攻击1、题目链接2、解析3、代码 三、Z字形变换1、题目链接2、解析3、代码 四、外观数列1、题目链接2、解析3、代码 五、数青蛙1、题目链接2、解析3、代码 一、替换所有的问号 1、题目链接 leetcode链接 2、解析 3、…

【排序算法】一、排序概念和直接插入排序(C/C++)

「前言」文章内容是排序算法之直接插入排序的讲解。&#xff08;所有文章已经分类好&#xff0c;放心食用&#xff09; 「归属专栏」排序算法 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、排序概念的介绍二、直接插入排序2.1 原理2.2 代码实现&#xff08;C/C&#xf…

鸿蒙开发-UI-布局-层叠布局

鸿蒙开发-UI-布局 鸿蒙开发-UI-布局-线性布局 文章目录 前言 一、基本概念 二、对齐方式 三、Z序控制 四、使用场景 总结 前言 上文详细学习了线性布局&#xff0c;学习了线性容器内子元素在主轴以及交叉轴上的排列方式&#xff0c;子元素自适应相关的知识点&#xff0c;本文继…

墙地砖外形检测的技术方案-图像形态学

基础理论 得到的灰度图像需进行二值化处理和区域填充&#xff0c;涉及两个步骤&#xff0c;第一&#xff0c;对图像进行分割&#xff0c;将图像分割成目标和背景&#xff1b; 第二&#xff0c;对分割后图像进行区域填充。本例中的背景为黑色&#xff0c;可以通过基本的全局阈…

智能管理护航制造企业安全生产:信息化升级解决方案解析-亿发

安全生产信息化是通过充分利用信息技术&#xff0c;及时采集安全生产管理中的各种要素和数据&#xff0c;并进行统计分析&#xff0c;随后将分析结果及时反馈&#xff0c;以实现对安全生产管理的指导和帮助&#xff0c;旨在提高安全生产管理的效能。 在提升安全生产管理水平方…

重磅!ESI高被引论文阈值发布

1月11日&#xff0c;科睿唯安&#xff08;Clarivate Analytics&#xff09;公布了最新的ESI数据。 注&#xff1a;ESI的更新时间为每奇数月的第二个星期四。 Essential Science Indicators (ESI) 是一种分析工具&#xff0c;可帮助识别 Web of Science 核心合集中表现最好的研…

浙江科聪完成A轮近亿元融资:持续领跑移动机器人控制系统市场

近日&#xff0c;中国移动机器人控制系统行业领军企业浙江科聪完成A轮近亿元融资&#xff0c;本轮融资由元璟资本投资。硬核资本加持硬核科技&#xff0c;本轮资金将主要用于加大研发投入&#xff0c;加速产品迭代和提升服务质量&#xff0c;加强公司全球营销网络的建设。 移动…

抖音弹幕直播玩法汉字找不同文字找不同无人值执守自动玩游戏自带语音播报的开发日志

#找不同# 要解决如下几个问题&#xff1a; 1.声音sprite的录制和调用&#xff0c;解决方案以及解决库如下&#xff1a; howler.min.js://一款不错的音频播放js库。 2.鼠标自动飘浮,使用的库 anime.min.js 3.资源预加载 preload.min.js 4.其它使用到的库 jquery,vue

自动化测试:fixture学得好,Pytest测试框架用到老

在pytest中&#xff0c;fixture是一种非常有用的特性&#xff0c;它允许我们在测试函数中注入数据或状态&#xff0c;以便进行测试。而参数化则是fixture的一个特性&#xff0c;它允许我们将不同的数据传递给fixture&#xff0c;从而进行多次测试。 本文将介绍如何在pytest中使…

【前端框架】Vue3合集

一、Vue3初识 1、create-vue create-vue是Vue官方新的脚手架工具&#xff0c;底层切换到了 vite &#xff08;下一代前端工具链&#xff09;&#xff0c;为开发提供极速响应 前置条件&#xff1a;16.0或更高版本的Node.js 安装并执行 create-vue npm init vuelatest2、项目…

MongoDB Compass当前版本及历史版本下载安装

mongoDB compass 当前版本下载 官网 https://www.mongodb.com/try/download/compass 官网下载一般只能下载最新版本。 github https://github.com/mongodb-js/compass MongoDB Compass与MongoDB的版本对应关系 MongoDB CompassMongoDB1.9.12MongoDB 2.6.11 Community

HNU-计算机网络-实验5(自选)-安全相关编程实验

计算机网络 课程综合实验安全相关编程实验&#xff08;RUST&#xff09; 计科210X 甘晴void 202108010XXX 【前言】 这个《课程综合实验》是21级开始新加的实验&#xff0c;之前都没有。具体的可以看实验指导书&#xff0c;是用的19级同学的毕设。我完成的这个实验需要一点点R…

VUE生命周期和生命周期四个阶段

Vue生命周期&#xff1a;一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个阶段&#xff1a;① 创建 ② 挂载 ③ 更新 ④ 销毁 vue的生命周期如图所示&#xff1a; Vue 生命周期函数&#xff08;钩子函数&#xff09;&#xff1a;Vue生命周期过程中&#xff0c;会自…

【机器学习 西瓜书】期末复习笔记整理

一些杂点&#xff1a; 测试集如何归一化&#xff1f; —— 不是用测试集的均值和标准差&#xff0c;而是用训练集的&#xff01; 机器学习&#xff1a; 对计算机一部分数据进行学习&#xff0c;然后对另外一些数据进行预测与判断。 参考计算例题&#xff1a; 机器学习【期末复习…

Few-shot Learning:知识点

目标&#xff1a; 让机器自己学会学习&#xff0c;学会理解和判断事物的异同&#xff08;如&#xff0c;区分两张图片内是相同的东西还是不同的东西&#xff0c;不是识别出是什么东西&#xff09; Pretraining 前景知识 C o s i n e S i m i l a r i t y Cosine \ Similarity…