R语言可视化——REmap(路径图)
时间:2022-05-08
本文章向大家介绍R语言可视化——REmap(路径图),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今天紧接昨天的内容,跟大家分享如何使用REmap函数制作路径图。
路径图所需要的数据结构非常简单,两列数据,左侧是起点,右侧是终点,并且每一行的终点是下一行的起点,这样最终才可以制作出连接在一起的路径图。
首先我们来构造所需的数据:
起点数据:
origin<- c("beijing","shijiazhuang","zhengzhou","hefei","nanjing","济南","dalian")
终点数据:
destination<- c(origin[-1],origin[1]) #将起点数据首尾互换,并构造终点数据
将终点数据、起点数据合并为数据框格式的作图数据:
map_data<- data.frame(origin,destination)
绘图:
map_out1<- remap(mapdata=map_data,
title ="我是主标题",
subtitle ="我是副标题",
theme =get_theme(theme='Dark')
)
plot(map_out1) #在web上展示图形
上面的例子中,为了使得路径图首尾相连,终点数据是起点数据调换首尾行而得到的。
那么如果不要求路径图首尾相连的话可以设置如下结构:
map_data1<-map_data[-7,]
map_out2<- remap(mapdata=map_data1,
title ="我是主标题",
subtitle ="我是副标题",
theme =get_theme(theme='Dark')
)
plot(map_out2) #在web上展示图形
这种路径图的形式非常适合用于表达带有很多中间节点的动态路线。
当然如果你也可以将数据源设置成两条毫不相干的路线:
data1<-c("西安","zhengzhou","shijiazhuang","beijing","shenyang","changhcun","哈尔滨")
data2<-c("nanyang","wuhan","changsha","南昌","guangzhou","南宁","贵阳")
origin<-c(data1[1:6],data2[1:6])
destination<-c(data1[2:7],data2[2:7])
map_data1<- data.frame(origin,destination)
map_out3<- remap(mapdata=map_data1,
title ="我是主标题",
subtitle ="我是副标题",
theme =get_theme(theme='Dark')
)
plot(map_out3)
随机生成的线条和气泡颜色看着挺别扭,我们可以将其修改为自定义颜色:
map_out4<- remap(mapdata=map_data1,
title ="我是主标题",
subtitle ="我是副标题",
theme =get_theme(theme='none',
lineColor = "white",
backgroundColor="black"
)
)
plot(map_out4)
你可以用这种方法,结合自己的数据来表达多个地域之间的流动方向:比如一打一路、长征、贸易路线、铁路路线图等都非常适合这种表达。
gif效果:
如果想要存储该HTML对象,需要设定临时目录:
setwd("D:/R/Rscript") #保存图片的位置,不做修改默认为R的工作路径
options(remap.js.web=T) #动态网页图保存命令
plot(map_out5) #保存的同时自动调用浏览器窗口
- NBitcoin:最完整的比特币港口(第1部分:加密)
- 【定制化图像开放平台】入门实例之手写数字模型训练
- 【人工智能】动物、植物、车型、菜品、LOGO识别示例代码
- 【大牛经验】写好Java代码的30条经验总结
- 乐视网面试真题,非一般的题目
- 数据挖掘算法-python实现:Logical回归
- 提取数字——字符串、正则面试题
- 【盟友分享】如何快速获取Chromium源码和编译
- .NET中的密钥加密
- 数据挖掘工程师笔试及答案
- 各大公司移动端页面 - 导航的实现
- JavaScript 运行机制之执行顺序详解
- Math对象面试题目
- Highcharts AJAX JSON JQuery 实现动态数据交互显示图表 柱形图
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 科学与艺术的融合:遗传算法绘制蒙娜丽莎
- “工业听诊”中多声源事件检测与定位
- 工业党福利:使用PaddleX高效实现指针型表计读取系列文章(2)
- 【三维点云系列】PCL点云库之数据文件与IO操作
- Jvm故障处理工具
- 递增子序列
- redis学习(二)
- You-Get 使用方法
- 接口测试 Mock 实战 | 结合 jq 完成批量化的手工 Mock
- 在Angular应用的child Component里同时使用@Input和@Output
- Angular应用里的@Input和@Output注解使用方法介绍
- K8S Ingress使用|常见问题列表
- 部署Tomcat及负载均衡
- Jenkins常用插件Publish Over SSH
- Zabbix 4.0配置监控Linux客户端