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

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.mzph.cn/news/628942.shtml

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

相关文章

IC验证——perl脚本ccode_standard——c代码寄存器配置标准化

目录 1 脚本名称 2 脚本路径 3 脚本参数说明 4 脚本操作说明 5 脚本代码 1 脚本名称 ccode_standard 2 脚本路径 /scripts/bin/ccode_standard 3 脚本参数说明 次序 参数名 说明 1 address (./rfdig&#xff1b;.&#xff1b;..&#xff1b;./boot) 指定脚本执行路…

【小笔记】用tsai库实现Rocket家族算法

2024.1.16 Rocket家族算法是用于时间序列分类的强baseline&#xff08;性能比较参考【小笔记】时序数据分类算法最新小结&#xff09;&#xff0c;Rocket/MiniRocket/MultiRocket官方都有开源实现&#xff0c;相比较而言&#xff0c;用tsai来实现有三个好处&#xff1a;1是快速…

WPF应用程序生存期以及相关事件

WPF 应用程序的生存期会通过 Application 引发的几个事件来加以标记&#xff0c;相关事件对应着应用程序何时启动、激活、停用和关闭。 应用程序生存期事件 • 独立应用程序(传统风格的 Windows 应用程序&#xff0c;这些应用程序作为要安装到客户端计算机并从客户端计算机运…

VitePress-01-从零开始的项目创建(npm版)

说明 本文介绍一下 VitePress的项目创建的步骤。 主要用到的命令工具是 npm。 本文的操作步骤是从无到有的创建一个完整的基本的【VitePress】项目。 环境准备 根据官方文档的介绍&#xff0c;截止本文发稿时&#xff0c;需要使用node.js 18 的版本。 可以使用node -v 的命令查…

关于java的封装

关于java的封装 我们在前面的文章中&#xff0c;了解到了类和对象的知识&#xff0c;以及做了创建对象的时候对内存的分析&#xff0c;我们本篇文章来了解一下面向对象的三大基本特征之一&#xff0c;封装&#x1f600;。 一、初识封装 封装就好比&#xff0c;我们把一些物品…

【操作系统】1. 操作系统概述

文章目录 【 1. 什么是操作系统 】【 2. 操作系统软件的分类 】【 3. 操作系统内核的抽象和特征 】3.1 操作系统内核的抽象3.2 操作系统内核的特征 【 1. 什么是操作系统 】 操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供服务的一种系统 软件。一个服务…

<软考高项备考>《论文专题 - 71 风险管理(3)》

3 过程2-识别风险 3.1 问题 4W1H过程做什么是识别单个项目风险以及整体项目风险的来源&#xff0c;并记录风险特征的过程。作用:1、记录现有的单个项目风险&#xff0c;以及整体项目风险的来源:2、汇总相关信息&#xff0c;以便项目团队能够恰当地应对已识别的风险。为什么做…

怎么修改或移除WordPress后台仪表盘概览底部的版权信息和主题信息?

前面跟大家分享『WordPress怎么把后台左上角的logo和评论图标移除&#xff1f;』和『WordPress后台底部版权信息“感谢使用 WordPress 进行创作”和版本号怎么修改或删除&#xff1f;』&#xff0c;其实在WordPress后台仪表盘的“概览”底部还有一个WordPress版权信息和所使用的…

项目解决方案:“ZL铁路轨行车辆”实时视频监控系统

目 录 一、建设背景 1.1 政策背景 1.2 现状 二、建设目标 三、建设依据 四、建设原则 4.1经济高效性 4.2系统开放性 4.3系统继承性 4.4系统扩展性 4.5系统经济性 4.6系统安全性 五、系统架构 5.1系统架构图 5.2技术架构 1、DVS 2、中心管理服务…

【Java SE语法篇】11.异常

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ 文章目录 1. 异常的概念和体系结构1.1 异常的概念1.2 异常体系…

PTA——7-31 三角形判断

7-31 三角形判断 (15分) 给定平面上任意三个点的坐标(x​1​​,y​1​​)、(x​2​​,y​2​​)、(x​3​​,y​3​​)&#xff0c;检验它们能否构成三角形。 输入格式: 输入在一行中顺序给出六个[−100,100]范围内的数字&#xff0c;即三个点的坐标x​1​​、y​1​​、x​2​…

SUKER书客重磅发布全新系列:书客Sun立式护眼台灯,护眼养眼新境界

近日&#xff0c;国内知名的光学国货品牌——SUKER书客在2024年新品发布上&#xff0c;正式发布了全新系列的书客Sun立式护眼台灯。 SUKER书客作为近年来快速发展的创新型光学技术品牌&#xff0c;曾推出的一系列产品都取得了刷新行业标准的成绩&#xff0c;他们坚持以创新为动…

【51单片机系列】单片机与PC进行串行通信

一、单片机与PC机串行通信的设计 工业现场的测控系统中&#xff0c;常使用单片机进行监测点的数据采集&#xff0c;然后单片机通过串口与PC通信&#xff0c;把采集的数据串行传送到PC机上&#xff0c;再在PC机上进行数据处理。 PC机配置的都是RS-232标准串口&#xff0c;为D型…

YOLOv5改进 | 2023主干篇 | 多种轻量化卷积优化PP-HGNetV2改进主干(全网独家创新)

一、本文介绍 Hello,大家好,上一篇博客我们讲了利用HGNetV2去替换YOLOv5的主干,经过结构的研究我们可以发现在HGNetV2的网络中有大量的卷积存在,所以我们可以用一种更加轻量化的卷积去优化HGNetV2从而达到更加轻量化的效果(亲测优化后的HGNetV2网络比正常HGNetV2精度更高…

开发知识点-java基础

java基础知识整理 windows 多版本java jar包不能直接打开 需要java -jar问题解决 windows 多版本 控制面板 java15 download 多版本 https://www.cnblogs.com/chenmingjun/p/9941191.html https://gitee.com/shixinke/JC-jEnv/repository/archive/master.zip java jar包不…

React16源码: React中的renderRoot的源码实现

renderRoot 1 &#xff09;概述 renderRoot 是一个非常复杂的方法这个方法里处理很多各种各样的逻辑, 它主要的工作内容是什么&#xff1f;A. 它调用 workLoop 进行循环单元更新 遍历整个 Fiber Tree&#xff0c;把每一个组件或者 dom 节点对应的Fiber 节点拿出来单一的进行更…

万户 ezOFFICE ezflow_gd.jsp SQL注入漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…

DC电源模块与AC电源模块的对比分析

DC电源模块与AC电源模块的对比分析 BOSHIDA DC电源模块和AC电源模块是两种常见的电源模块&#xff0c;它们在供电方式、稳定性、适用范围等方面有所不同&#xff0c;下面是它们的对比分析&#xff1a; 1. 供电方式&#xff1a; DC电源模块通过直流电源供电&#xff0c;通常使用…

【Linux】Linux 系统编程——which 命令

文章目录 1.命令概述2.命令格式3.常用选项4.相关描述5.参考示例 1.命令概述 which 命令用于定位执行文件的路径。当输入一个命令时&#xff0c;which 会在环境变量 PATH 所指定的路径中搜索每个目录&#xff0c;以查找指定的可执行文件。 2.命令格式 which [选项] 命令名3.常…

生产力与生产关系 —— 浅析爱泼斯坦事件 之 弱电控制强电原理

据网络文字与视频资料&#xff0c;爱泼斯坦事件是犹太精英阶层&#xff0c;为了掌控美国国家机器为犹太利益集团服务&#xff0c;而精心设下的一个局。本文先假设这个结论成立&#xff0c;并基于此展开讨论。 我们知道&#xff0c;弱电管理强电是电气工程中的一门专门学问&…