有动态效果的桑基图

栏目: 编程工具 · 发布时间: 7年前

内容简介:节选一段来自 AntV 上关于桑基图通常的使用场景,是有明确的指向性的。因此也有人尝试用渐变动画、粒子效果等来表现这种流向。下面展示的这个场景,就是用来表现患者就诊过程中的数量和比例的变化,属于比较常规经典的做法。加入流动效果后,可以更加直观地表现这一含义,选中节点后,它所对应的上下游关系会被高亮,从而能更方便地分析和感知。

关于桑基图

节选一段来自 AntV 上关于 桑基图的定义

桑基图 (Sankey Diagram),是一种特定类型的流图,用于描述一组值到另一组值的流向。上图为1869年,查尔斯米纳德(Charles Minard)绘制的1812年拿破仑征俄图(Map of Napolean's Russian Campaign of 1812),这是一个在地图上覆盖桑基图的流程图。1898年爱尔兰人Matthew Henry Phineas Riall Sankey 在土木工程师学会会报纪要的一篇关于蒸汽机能源效率的文章中首次推出了第一个能量流动图,此后便以其名字命名为 Sankey 图,中文音译为桑基图。

图中延伸的分支的宽度对应数据流量的大小。桑基图的特点如下:

- 起始流量和结束流量相同,所有主支宽度的总和与所有分出去的分支宽度总和相等,保持能量的平衡;
- 在内部,不同的线条代表了不同的流量分流情况,它的宽度成比例地显示此分支占有的流量;
- 节点不同的宽度代表了特定状态下的流量大小。

桑基图的流量含义

桑基图通常的使用场景,是有明确的指向性的。因此也有人尝试用渐变动画、粒子效果等来表现这种流向。

下面展示的这个场景,就是用来表现患者就诊过程中的数量和比例的变化,属于比较常规经典的做法。加入流动效果后,可以更加直观地表现这一含义,选中节点后,它所对应的上下游关系会被高亮,从而能更方便地分析和感知。

实现方案

桑基图的主体是使用 Observable 上的 Flow-o-matic 的例子,它主要用的是 d3.js 中的 sankey 工具。

动态效果使用了在 SVG 内嵌入 ForeignObject 的 canvas 元素,并通过 THREE.js 来渲染 WebGL 的方式,直接制作 SVG 动画性能不佳,而 WebGL 和 SVG 能在这个例子上实现互补,体现了现代浏览器技术的进步。

示例


以上所述就是小编给大家介绍的《有动态效果的桑基图》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

逆袭大学

逆袭大学

贺利坚 / 人民邮电出版社 / 2014-3 / 49.00

《逆袭大学——传给IT学子的正能量》以作者近二十年的从教经历和义务为IT学子解答咨询的工作为基础,以认识专业为起点,以编程能力的提高为关键,帮助计算机类专业的大学生更新学习观念、重塑学习品质、培养学习方法,找到自己的大学之路。书中直接解答了学无用处论、专业兴趣、考研、职场等诸多大学生面临的典型困惑。 本书主要面向在校计算机类(包括软件工程、网络工程等)专业高校学生,也能让非计算机类专业的高校......一起来看看 《逆袭大学》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换