Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >冲击图(alluvial diagram)是流程图

冲击图(alluvial diagram)是流程图

原创
作者头像
VX605172933
修改于 2019-10-08 04:12:39
修改于 2019-10-08 04:12:39
3.3K0
举报
文章被收录于专栏:专业科技专业科技

605172933感谢“宏基因组0”群友李海敏、沈伟推荐此包绘制堆叠柱状图各成分连线:突出展示组间物种丰度变化。

冲击图(alluvial diagram)是流程图(flow diagram)的一种,最初开发用于代表网络结构的时间变化。

实例1. neuroscience coalesced from other related disciplines to form its own field. From PLoS ONE 5(1): e8694 (2010)

ggalluvial是一个基于ggplot2的扩展包,专门用于快速绘制冲击图(alluvial diagram),有些人也叫它桑基图(Sankey diagram),但两者略有区别,将来我们会介绍包绘制桑基图。

软件源代码位于Github: https://github.com/corybrunson/ggalluvial

CRNA官方演示教程: https://cran.r-project.org/web/packages/ggalluvial/vignettes/ggalluvial.html

安装

以下三种方装方式,三选1:

显示帮助文档

使用vignette查看演示教程

接下来我们的演示均基于此官方演示教程,我的主要贡献是翻译与代码注释。

基于ggplot2的冲击图

原作者:Jason Cory Brunson, 更新日期:2018-02-11

1. 最简单的示例

基于泰坦尼克事件人员统计绘制性别与舱位和年龄的关系。

具体参考说明:data设置数据源,axis设置显示的柱,weight为数值,geom_alluvium为冲击图组间面积连接并按生存率比填充分组,geom_stratum()每种有柱状图,geom_text()显示柱状图中标签,theme_minimal()主题样式的一种,ggtitle()设置图标题

图1. 展示性别与舱位和年龄的关系及存活率比例

我们发现上图居然画的是宽表格模式下的数据,而通常ggplot2处理都是长表格模式,如何转换呢?

to_loades转换为长表格

产生和上图一样的图,只是数据源格式不同。

2. 输入数据格式

定义一种Alluvial宽表格

查看性别与专业间关系,并按录取情况分组

3. 三类型间关系,按重点着色

Titanic按生存,性别,舱位分类查看关系,并按舱位填充色

4. 长表格数据

主要列说明:

x, 主要的分类,即X轴上每个柱

stratum, 主要分类中的分组

alluvium, 连接图的索引

5. 绘制非等高冲击图

以各国难民数据为例,观察多国难民数量随时间变化

6. 等高非等量关系

不同学期学生学习科目的变化

7. 工作状态时间变化图

8. 分类学门水平相对丰度实战

绘制分组对应的分类学,有点像circos

组间各丰度变化,如果组为时间效果更好

Reference

Jason Cory Brunson (2017). ggalluvial: Alluvial Diagrams in ‘ggplot2’. R package version 0.5.0.

https://CRAN.R-project.org/package=ggalluvial

https://en.wikipedia.org/wiki/Alluvial_diagram

ggalluvial包源码:http://corybrunson.github.io/ggalluvial/index.html

官方示例 Alluvial Diagrams in ggplot2 https://cran.r-project.org/web/packages/ggalluvial/vignettes/ggalluvial.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊聊elasticsearch的RoutingService
elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/cluster/routing/RoutingService.java
code4it
2019/05/14
5460
聊聊elasticsearch的RoutingService
聊聊elasticsearch的SeedHostsProvider
elasticsearch-7.0.0/server/src/main/java/org/elasticsearch/discovery/SeedHostsProvider.java
code4it
2019/04/27
5730
聊聊elasticsearch的SeedHostsProvider
聊聊elasticsearch的NodesFaultDetection
本文主要研究一下elasticsearch的NodesFaultDetection
code4it
2019/05/10
5970
聊聊elasticsearch的NodesFaultDetection
聊聊elasticsearch的MasterFaultDetection
本文主要研究一下elasticsearch的MasterFaultDetection
code4it
2019/05/11
7290
聊聊elasticsearch的MasterFaultDetection
聊聊elasticsearch的LagDetector
elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/cluster/coordination/LagDetector.java
code4it
2019/05/13
8690
聊聊elasticsearch的LagDetector
《Elasticsearch 源码解析与优化实战》第14章:Cluster模块分析
Cluster模块封装了在集群层面要执行的任务。例如,把分片分配给节点属于集群层面的工作,在节点间迁移分片以保持数据均衡,集群健康、集群级元信息管理,以及节点管理都属于集群层面工作。本章重点论述集群任务的执行,以及集群状态的下发过程。分片分配和节点管理等单独讨论更合适一-些。
HLee
2021/08/11
1.3K0
《Elasticsearch 源码解析与优化实战》第14章:Cluster模块分析
Elasticsearch源码分析七之集群选举流程分析
org.elasticsearch.node.Node#start方法中有ZenDiscovery初始化的部分:
山行AI
2020/03/12
1.2K0
聊聊elasticsearch的PeerFinder
elasticsearch-7.0.0/server/src/main/java/org/elasticsearch/discovery/PeersRequest.java
code4it
2019/04/29
6890
聊聊elasticsearch的PeerFinder
《Elasticsearch 源码解析与优化实战》第5章:选主流程
Discovery模块负责发现集群中的节点,以及选择主节点。ES支持多种不同Discovery类型选择,内置的实现称为Zen Discovery,其他的包括公有云平台亚马逊的EC2、谷歌的GCE等。
HLee
2021/06/07
1.4K2
《Elasticsearch 源码解析与优化实战》第5章:选主流程
Elasticsearch 源码探究 001——故障探测和恢复机制
探究Elasticsearch7.10.2 节点之间的故障探测以及熔断故障是怎么做的,思考生产上的最佳实践。
铭毅天下
2023/08/18
6290
Elasticsearch 源码探究 001——故障探测和恢复机制
ES系列(七):多节点任务的高效分发与收集实现
我们知道,当我们对es发起search请求或其他操作时,往往都是随机选择一个coordinator发起请求。而这请求,可能是该节点能处理,也可能是该节点不能处理的,也可能是需要多节点共同处理的,可以说是情况比较复杂。
烂猪皮
2021/07/16
8940
聊聊elasticsearch的ElectMasterService
elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/discovery/zen/ElectMasterService.java
code4it
2019/05/12
8510
聊聊elasticsearch的ElectMasterService
《Elasticsearch 源码解析与优化实战》第8章:GET流程
ES的读取分为Get和Search两种操作,这两种读取操作有较大的差异,GET/MGET必须指定三元组:index、_type、_id。 也就是说,根据文档id从正排索引中获取内容。而Search不指定_id,根据关键词从倒排索引中获取内容。本章分析GET/MGET过程,下一章分析Search过程。
HLee
2021/06/11
9780
《Elasticsearch 源码解析与优化实战》第8章:GET流程
看elasticsearch二阶段提交(2PC)
二阶段提交二阶段提交(Two-phase Commit),使分布式架构下所有节点保持事务一致性的算法(Algorithm)。假设2个角色:协调者(Coordinator),参与者(Cohorts)。两者之间可以进行rpc。undo/redo:所有节点都预写式日志,且日志持久化在可靠的存储设备上。节点可靠:所有节点不会永久性损坏,即使损坏后仍然可以恢复。过程;第一阶段投票阶段,各参与者投票是否要继续接下来的提交操作;第二阶段完成阶段,因为无论结果怎样,协调者都必须在此阶段结束当前事务。图片堆栈图片代码分析Pr
用户1233856
2022/08/07
4940
聊聊elasticsearch的TransportProxyClient
本文主要研究一下elasticsearch的TransportProxyClient
code4it
2019/04/19
7410
聊聊elasticsearch的TransportProxyClient
Elasticsearch快照(snapshot)备份原理及分析
Snapshot是Elasticsearch提供的一种将集群数据备份至远程存储库的功能。例如将数据备份至S3,HDFS,共享文件系统等。
空洞的盒子
2024/08/02
2K3
聊聊elasticsearch的SeedHostsResolver
elasticsearch-7.0.0/server/src/main/java/org/elasticsearch/discovery/PeerFinder.java
code4it
2019/04/26
8120
聊聊elasticsearch的SeedHostsResolver
Elasticsearch重要知识点 | 选举流程详解
ES选举最核心的是Elasticsearch的选举流程,笔者研究了Elasticsearch选举源代码,同时看了很多文章之后,梳理出了选举过程中各个流程要点,下图是elasticsearch选举的流程图
王知无-import_bigdata
2020/09/25
1.8K0
Elasticsearch重要知识点 | 选举流程详解
聊聊elasticsearch的ZenPing
elasticsearch-7.0.0/server/src/main/java/org/elasticsearch/discovery/zen/ZenPing.java
code4it
2019/04/28
6020
聊聊elasticsearch的ZenPing
聊聊Elasticsearch的DiscoveryPlugin
elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/plugins/DiscoveryPlugin.java
code4it
2019/05/27
5540
聊聊Elasticsearch的DiscoveryPlugin
相关推荐
聊聊elasticsearch的RoutingService
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档