REmap包介绍及使用

article/2025/8/27 8:21:46

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

#REmap包简介

#包安装

#remapH函数

     #remapH案例

#get_theme函数

#remapC函数

     #markLineControl函数

     #markPointControl函数

     #remapC案例

  • REmap包简介

    REmap包是R与echart的对接,在R里调用echar的api直接作图,函数特征更加简单,绘图过程更加方便快捷,如果要个性化绘制可以修改REmap包源码, 需要有一定的javascript/css/html 

 

remapH函数:该函数主要用于绘制热力效果图,如在地图上绘制不同密度的热力效果

remapC函数:该函数主要用于绘制分块区域热力,如在地图上不同省份热力效果

remapB函数:该函数主要基于百度地图背景,做迁徙,通勤效果图

markLineControl,markPointControl,get_theme这三个函数主要用于控制在map图上画线, 打点以及主题的各种样式,如颜色,效果,粗细等。

 

  • 包安装

a、https://cran.r-project.org/ 上下载对应系统及版本的R软件,下文环境为win64的R

b、此次用到的包为REmap,其挂靠在https://github.com/ 上,只需运行R,依次输入: 

(1)Install.packages(“devtools”)

此时会谈出一个界面,选择china即可,下载完成后,再输入:

(2)Library(devtools)

(3)Install_github(“Lchiffon/REmap”),稍等片刻下载完成后,再输入:

(4)library(REmap)

 

配置完成

注意:1.如果安装devtools包过程提示没有digest包error,则再输入install.packages(“digest”),再重复上述3过程

 

  • remapH函数
remapH(data,maptype = 'china',theme = get_theme("Dark"),blurSize = 30,color = c('blue'),minAlpha = 0.05,opacity = 1,)

data:要传入的数据,数据为三列,第一列为经度lon,第二列为维度lat,第三列为密度/概率prob

maptype: 要绘制的地址类型,如中国地图maptype=‘china’,世界地图maptype=‘world’

theme: 主题,设置该参数后无需设置get_theme里其他参数,下文介绍

blurSize: 为热力效果的泛化范围,可调整热力点中心的扩散程度

color: 热力的渐变颜色

minAlpha:热力点的展示阈值,对应data中的prob列,作图时各点密度会对比minAlpha,以凸显不同密度所展示的不同热力分布

opacity:透明度,调整热力图的透明度

 

remapH案例

> library(REmap)
> options(remap.js.web=T)
> data<- read.csv(file="C:\\Users\\Xu\\Desktop\\cityvaluetop10.csv",header=T)
> theme1 <- get_theme(theme = "none",
+                     lineColor = "white",
+                     backgroundColor = "#CCCCCC", 
+                     titleColor = "#fff",
+                     borderColor = "white", 
+                     regionColor = "Silver",
+                     labelShow = T, 
+                     pointShow = F, 
+                     pointColor = "gold"
+ )> remapH(data,  #效果如下图
+        maptype = 'china',
+        theme = theme1,
+        blurSize = 70,
+        color = "red",
+        minAlpha = 10,
+        opacity = 1
+ )
Save img as: ID_20171104005314_62482.html

 

07142925_429S.png

  • get_theme函数
get_theme(theme = "Dark", lineColor = "Random",backgroundColor = "#1b1b1b", titleColor = "#fff",borderColor = "rgba(100,149,237,1)", regionColor = "#1b1b1b",labelShow = T, pointShow = F, pointColor = "gold")

 

theme: 主题,设置该参数后无需设置get_theme里其他参数,可选“Dark”,“Sky”,“blue”,“none”四中,当设置get_theme其他参数时,需要将该参数设置为“none”

lineColoe:线条颜色,对应为map图里面迁徙线条的颜色

backgroundColor:图片的背景色,支持16进制颜色输入,也支持rgb()函数和rgba()

titleColor:标题的颜色,设置同上

borderColor:地图中各省、市边界颜色

regionColor:地图中各区域颜色,各省份和市

labelShow:否展示各省、市名字,设置为True时展示

pointShow:是否展示各省会,城市所在点,设置为True时展示

pointColor:设置上述点的颜色

  • remapC函数

该函数主要用于绘制分块区域热力,如在地图上显示不同省份热力效果

remapC(data,maptape = 'china'markLineData = NULL,markPointData = NULL,color = c('#le90ff','#f0ffff'),them = get_theme('Bright'),title = "",subtitle = "",markLineTheme = markLineControl(),markPointTheme = markPointControl(),geoData = NA,mindata = NA,maxdata = NA)
)

 

data: 表示要传入的数据,该数据有2列,第一列为city(各城市,省份名字),第二列为value(第一列城市对对应的数值)

maptype:要绘制的地址类型,如中国地图maptype=‘china’,世界地图maptype=‘world’

markLineData:要绘制的线条数据,该数据前两列为必须,第一列为origin(出发地),第二列为destination(目的地),此外建议在第三列指定线条颜色,因为在markLineControl里设置线条颜色容易出错

markPointData:要绘制的点的数据,该数据为一列,该列为要绘制点的名字,此外建议在第二列指定点的颜色,因为在markLineControl里设置点颜色容易出错

color:热力颜色的渐变,第一个为起始颜色,第二个为终止颜色

theme:主题,设置该参数后无需设置get_theme里其他参数,可选“Dark”,“Sky”,“blue”,“none”四中,当设置get_theme其他参数时,需要将该参数设置为“none”

title:标题

subtitle:副标题

markLineTheme:控制线条的样式参数,该参数由markLineControl函数传入(后文介绍)

markPointTheme:控制点的样式参数,该参数由markPointControl函数传入(后文介绍)

geoData:为上述点,线涉及到的城市,省份的经纬度,该数据为三列,第一列lon(经度),第二列lat(维度),第三列city(城市或省份名字)

mindata,maxdata:热力图的阈值,低于或高于该值将不会被展示出来

 

     markLineControl函数

markLineControl(symbol = c('none', 'arrow'),symbolSize = c(2,4),smooth = T,smoothness = 0.2,effect = T,lineWidth = 1,lineType = 'solid',color = "Random")

 

symbol:控制要绘制线条两端形状,第一个为起点,第二个为终点,可选样式有:’pin’, ‘circle’,’rectangle’,’triangle’,’diamond’,’emptyCircle’,’emptyRectangle’,’ emptyTriangle’,’emptyDiamond’,’heart’,’droplet’,’arrow’,’tar’

symbleSize:控制上述参数形状大小,同样有两个值

smooth: 控制线条是否平滑,为T时,smoothness参数才有效

smoothness:控制线条的平滑度,为0时是直线

effect:控制线条是否呈现动态效果,为T时显示动态效果,需要注意的是当线条过多时effect参数无效,不会显示动效

linewidth:控制线条的粗细

lineType:控制线条的形状,可选样式有:’solid’, ‘dotted’,’dashed’

color:控制线条的颜色,不建议在此处设置颜色

 

    markPointControl函数

markPointControl(symbol = 'emptyCircle',symbolSize = "Random",effect = T,effectType = 'scale',color = "Random")

symbol:控制点的形状,可选样式有:’pin‘,’circle’,’rectangle’,’triangle’,’diamond’,’emptyCircle’, ’emptyRectangle’,’emptyTriangle’,’emptyDiamond’,’heart’,’droplet’,’arrow’,’tar’

symbolSize:控制上述参数形状大小

effect:控制点是否呈现动态效果,为T时显示动态效果,需要注意的是当点数目过多时effect参数无效,不会显示动效

effectType:控制点的动效呈现形式,可选样式有:’scale’ ,’bounce’

color:控制点的颜色,不建议在此处设置颜色

 

remapC案例

> library(REmap)
> options(remap.js.web=T)
> data<- read.csv(file="C:\\Users\\Xu\\Desktop\\cityvaluetop10.csv",header=T)
> theme1 <- get_theme(theme = "none",
+                     lineColor = "white",
+                     backgroundColor = "#CCCCCC", 
+                     titleColor = "#fff",
+                     borderColor = "white", 
+                     regionColor = "Silver",
+                     labelShow = T, 
+                     pointShow = F, 
+                     pointColor = "gold"
+ )
> remapH(data,
+        maptype = 'china',
+        theme = theme1,
+        blurSize = 70,
+        color = "red",
+        minAlpha = 10,
+        opacity = 1
+ )
Save img as: ID_20171104005427_69796.html
> library(REmap)
> options(remap.js.web=T)
> cityvalue <- read.csv(file="C:\\Users\\Xu\\Desktop\\cityvalue.csv",header=T,encoding="gb2312")
> theme1 <- get_theme(theme = "none", 
+                     lineColor = "red",
+                     backgroundColor = "white", 
+                     titleColor = "#fff",
+                     borderColor = "white", 
+                     regionColor = "grey",
+                     labelShow = F, 
+                     pointShow = F, 
+                     pointColor = "gold"
+ )
> markline_data <- data.frame(origin=rep("广州",10),
+                             destination=c("广西","湖南","湖北","贵州",
+                                           "河南","江西","福建","北京",
+                                           "浙江","四川"),
+                             color=rep("red",10)
+ )
> markpoint_data <- data.frame(point=c("广西","湖南","湖北","贵州","河南",
+                                      "江西","福建","北京","浙江","四川"),color=rep("white",10))
> markline_control <- markLineControl(symbolSize=c(0,0),
+                                     smooth=F,
+                                     smoothness=0,
+                                     effect=F,
+                                     lineWidth=1,
+                                     lineType="solid",
+ )
> markpoint_control <- markPointControl(symbol = 'Circle',
+                                       symbolSize = 10,
+                                       effect = T,
+                                       effectType = 'scale',
+ )
> remapC(cityvalue,
+        maptype = 'china',
+        markLineData = markline_data,
+        markPointData = markpoint_data,
+        color = c('#888888','#CDCDCD'),
+        theme = theme1,
+        title = "",
+        subtitle = "",
+        markLineTheme = markline_control,
+        markPointTheme = markpoint_control,
+        #geoData = NA,  geoData参数,此处可以省略该参数的原因是因为作图涉及到城市以及省份数据,remapC函数都会调用内置get_geo_position函数获取对应经纬度,而这只有在数据是城市或省份时才有效
+        #mindata = NA,
+        #maxdata = NA
+ )
Save img as: ID_20171104010458_132853.html
There were 11 warnings (use warnings() to see them)

 

07142926_5fMf.png

知识整理来自

[1]R语言中文社区

[2]知乎

转载于:https://my.oschina.net/u/1785519/blog/1563794


http://chatgpt.dhexx.cn/article/YbLrPXpD.shtml

相关文章

用R语言绘制动态地图,代码奉上!(REmap包详解)

options(remap.ak="MY07CLhm3wKi4N2tQ6WP4kzz21BBZagI") 安装包 library(devtools) install_github(badbye/baidumap) install_github(lchiffon/REmap) baidumap包函数说明 getBaiduMap函数 getBaiduMap(location, width = 400, height = 400, zoom = 10, scale = …

remap()

学习自&#xff1a;【OpenCV入门教程之十七】OpenCV重映射 重映射&#xff0c;就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一一对应的。一般情况下&#xff…

REmap绘制地图

本文出自&#xff1a; http://blog.csdn.net/wzgl__wh/article/details/53108754 REmap这个包是通过调用百度地图API的一个程序包&#xff0c;与Google的ggmap包相比&#xff0c;不用翻墙就可以使用。其函数主要有&#xff1a;remap()&#xff0c;remapB()、remapC()、remapH()…

R语言:使用REmap绘制超炫酷的地图

REmap这个包是通过调用百度地图API的一个程序包,与Google的ggmap包相比,不用翻墙就可以使用。其函数主要有:remap(),remapB()、remapC()、remapH()四个。该程序包目前要github网站上,因此我们需要从github上面下载安装。 install.packages("devtools")#如果安装…

ioremap()

活动地址&#xff1a;CSDN21天学习挑战赛 前言 之前&#xff0c;我们使用 devmem 命令的方式&#xff0c;直接操作寄存器&#xff0c;控制 LED 的亮灭。 今天&#xff0c;我们在内核中使用 ioremap() 来实现该功能。 物理地址 vs 虚拟地址 在嵌入式 Linux 中&#xff0c;通常…

STM32和GD32的GPIO引脚的default(默认) alternate(引脚复用) remap(引脚重映射)三种用法 别把复用和重映射当一回事儿

STM32有很多内置外设&#xff0c;这些外设的外部引脚都是与GPIO复用的。也就是说&#xff0c;一个GPIO如果可以复用为内置外设的功能引脚&#xff0c;那么当这个GPIO作为内置外设使用的时候&#xff0c;就叫做复用 重映射就是引脚重映射&#xff0c;本来每个内置外设都有原来设…

OpenCV函数remap详解

OpenCV函数remap详解 remap的作用是将原影像映射到目标影像的函数。 这是OpenCV文档中的说明。 但这个描述给人的感觉是&#xff0c;云里雾里&#xff0c;到底是需要计算目标到原的映射关系&#xff0c;还是原到目标的映射呢。 经过我的实验发现是需要给出目标到原的映射关系…

remap函数

cvRemap( img1, img1r, mx1, my1 );在这个函数中mx1、my1是由前面函数计算出的校正系数&#xff0c;其指明了具体像素重新分配的位置。在learning opencv的12.3自带程序中可以发现&#xff0c;一般来说my1的值是比较集中的&#xff0c;mx1的值是比较分散的&#xff0c;这满足基…

Python-OpenCV 的 remap函数

恒等映射 result_img 和 原图一模一样 import cv2 import numpy as npimg cv2.imread("OpenCV.png") rows, cols, ch img.shape mapx np.ones(img.shape[:2], np.float32) mapy np.ones(img.shape[:2], np.float32) for i in range(rows):for j in range(cols)…

STM32重映射(Remap)

STM32重映射&#xff08;Remap&#xff09; 在外设的初始化中默认为Default重映射函数复用功能 在外设的初始化中默认为Default 在参考手册中 均有USART1的功能&#xff0c;但是若是想要用PB6与PB7作为USART1_TX与USART1_RX则需要用到重映射。 使用PA9 PA10只需要直接配置就…

Opencv remap函数

Opencv remap函数 函数签名实例应用亚像素信息扭曲特效 函数签名 void cv::remap ( InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderMode BORDER_CONSTANT, const Scalar & borderValue Scalar() ) 将通用几何变换…

OpenCV图像处理——重映射 remap函数

在《学习OpenCV3&#xff0c;OReilly系列丛书》中的第11章常见的图像变换中讲到的“任意映射”&#xff0c;Remap函数。函数cv::remap通常用来纠正校准的立体图像&#xff0c;包括图像变形和图像扭曲。其实这个函数在无人机拍摄延时摄影&#xff08;使用电子防抖算法&#xff0…

重映射:remap()函数

remap()函数会根据指定的映射形式&#xff0c;将原图像进行重映射几何变换&#xff0c;基于公式如下&#xff1a; dst(x, y) src( mapx(x, y), mapy(x, y) )函数原型C&#xff08;程序 / 20&#xff09;: void remap( InputArray src, OutputArray dst, InputArray map1, In…

OpenCV:remap()简单重映射

学习自&#xff1a;【OpenCV入门教程之十七】OpenCV重映射 重映射&#xff0c;就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一一对应的。一般情况下&#xff…

JS获取对象键值对中key值的方法

使用Object.keys Object.keys( ) 会返回一个数组&#xff0c;数组中是这个对象的key值列表 所以只要Object.keys(a)[0]&#xff0c; 就可以得只包含一个键值对的key值 下面是MDN中对Object.keys的描述 Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组&…

C# 键值对

1.初始化一个键值对 1 //初始化定义一个键值对&#xff0c;注意最后的括号 2 Dictionary<int, string> dic new Dictionary<int, string>(); 2.为键值对添加元素 1 //键值对的Add函数 2 dic.Add(2, "zhao"); 3 dic.Add(4, "qian"); 4 dic…

js中往数组对象中添加键值对的方法有哪些?

❤️❤️❤️Topology-le5le智慧光伏能源可视化方案❤️❤️❤️ &#x1f31f;&#x1f31f;&#x1f31f;Topology可视化绘图引擎&#x1f31f;&#x1f31f;&#x1f31f; 1.Object.assign() 用法&#xff1a;Object.assign(源对象, {要添加的键值对}) 2.拓展运算符&…

键值对操作

键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口(比如统计每个产品的评论,将数据中键相同的分为一组,将两个不同的 RDD 进行分组合并等)。 1. 动机 Spark 为包含键值对类…

java键值对的使用

Map集合没有继承Collection接口&#xff0c;但是其提供了key到value的映射。每一个key不能有相同&#xff0c;每个key只能映射一个value值。 Map接口常用方法&#xff1a; 方法功能描述put(K key, V value)向集合中添加指定的key与value的映射关系containsKey(Object key)如果…

C++ map容器(键值对)

文章目录 1&#xff0c;map简介2&#xff0c;map的功能3&#xff0c;使用map4&#xff0c;map的构造函数5&#xff0c;插入元素6&#xff0c; 查找元素7&#xff0c; 刪除与清空元素8&#xff0c;map的大小9&#xff0c;map的基本操作函数&#xff1a; 使用示例示例1 20221027 …