可视化图表走起来(1):桑基图,一目了然数据流向。

从事可视化设计,什么时候选用什么样的图表非常重要,今天来介绍一下桑基图的定义、场景、数据项等等,贝格前端工场愿意与各位老铁一道成长。

一、桑基图的定义

桑基图(Sankey diagram)是一种特殊类型的可视化图表,用于显示流量、能量、资源等在不同阶段或组件之间的流动和转移关系。

图表由一系列连续的箭头线段组成,箭头的宽度表示流量的大小或比例。桑基图通常用于展示复杂的流程、路径或网络,以便观察和分析各个组件之间的关联和贡献。该图表可以帮助用户快速理解和识别主要的流动路径,发现潜在的瓶颈或优化机会。


二、桑基图的作用和应用场景

桑基图有以下几个主要的作用和应用场景:

展示流程和路径:

桑基图可以清晰地展示复杂的流程、路径或网络,帮助用户理解和分析各个组件之间的关联和贡献。它可以显示不同阶段或组件之间的流量转移和流向,帮助用户追踪和理解数据、资源或能量的流动情况。

发现瓶颈和优化机会:

通过观察桑基图中的流量大小或比例,用户可以快速识别主要的流动路径和潜在的瓶颈。这有助于发现系统中的瓶颈点,并提供改进和优化的机会。

比较和对比:

桑基图可以用于比较不同组件之间的流量差异和变化。用户可以通过比较箭头的宽度、长度或颜色来观察不同组件之间流量的变化趋势,从而得到有关变化的洞察。

故事叙述和演示:

桑基图可以用于以图表形式叙述一个故事或展示一个过程。它可以帮助用户将复杂的信息和数据可视化,以更直观和易于理解的方式进行演示和传达。

决策支持:

桑基图可以提供有关流量、资源或能量转移的详细信息,帮助用户做出决策。用户可以根据桑基图中展示的流量和关联关系,进行分析和推断,并基于这些信息制定战略或采取行动。

桑基图在许多领域和场景中都有广泛的应用,包括物流、能源管理、市场分析、数据科学等。


三、桑基图构成要素

桑基图通常由以下几个要素构成:

节点(Node):

节点表示系统或组件,通常以矩形或圆形的形式呈现。每个节点代表一个阶段、状态或组件,并且在桑基图中有唯一的标识符。


 


 

箭头(Arrow):

箭头表示流量的流向,用于连接不同的节点。箭头的宽度可以表示流量的大小或比例,即流量越大,箭头越宽。

流量(Flow):

流量表示在不同节点之间的转移或流动。它可以通过箭头的宽度、长度或颜色来表示。流量的大小或比例通常关联着数据的量级或比例关系。

标签(Label):

标签用于标识节点或箭头的名称、数值或其他相关信息。它可以帮助用户更好地理解和解释图表中的节点和流量。

颜色(Color):

颜色在桑基图中常用于区分不同的节点、流量或类别。通过使用不同的颜色,可以将图表中的元素进行分类、分组或区分。

这些要素的组合和排列方式可以根据具体的需求和设计来进行调整和定制,以满足用户对桑基图的可视化需求。


四、桑基图的配置项

在 Echarts 中,桑基图(Sankey diagram)的配置项包括:

series.type:设置为 ‘sankey’ 表示使用桑基图。
series.data:桑基图的节点和流量数据。数据格式为一个包含 nodes 和 links 两个数组的对象。nodes 数组包含所有的节点信息,每个节点都包括 name 属性来表示节点的名称。links 数组包含所有的流量信息,每个流量都包括 source、target 和 value 属性,分别表示源节点、目标节点和流量的大小。
series.layout:设置桑基图的布局方式。可以选择 ‘none’(表示节点按照数据顺序排列)、‘none’(表示节点按照拓扑排序排列)或 ‘none’(表示节点按照层级排列)。
series.nodeWidth:设置节点的宽度。
series.nodeGap:设置节点之间的间距。

series.label:设置节点和流量的标签显示。可以配置标签的位置、字体样式、颜色等。
series.itemStyle:设置节点和流量的样式,包括颜色、边框样式等。
series.lineStyle:设置流量的线条样式,包括颜色、弯曲程度等。
series.emphasis:设置节点和流量的高亮样式,当鼠标悬停或选中时生效。
series.links:设置桑基图的流量线条的样式,可以配置线条的颜色、宽度等。
series.autoCurveness:设置流量线条的弯曲程度,可以通过调整数值来改变线条的曲率。

series.focusNodeAdjacency:设置是否启用节点间的高亮交互效果,当鼠标悬停在一个节点上时,与该节点相关的节点和流量都会高亮显示。
series.draggable:设置节点是否可拖拽,可以通过拖拽节点来改变节点之间的连接关系。
series.highlightPolicy:设置节点和流量的高亮策略,可以选择 ‘ancestor’(高亮所有的祖先节点和后代节点)、‘descendant’(高亮所有的后代节点)或 ‘self’(只高亮当前节点)。
series.animation:设置桑基图的动画效果,包括动画的持续时间、缓动效果等。
series.tooltip:设置节点和流量的提示框,可以配置提示框的内容、样式等。
toolbox.feature.saveAsImage:设置是否显示保存为图片的功能按钮,可以将桑基图保存为图片文件。

这些配置项可以根据具体的需求进行调整和定制,以满足用户对桑基图的展示和交互需求。需要注意的是,不同版本的 Echarts 可能会有略微的差异,建议参考官方文档和示例进行具体的配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/710680.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南

📢📢📢 深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南 Spring Cloud Sentinel 是阿里巴巴开源的一款强大的分布式系统流量防卫组件,专为微服务架构设计,提供流量控制、熔断降级…

【Spring6】13-19章 JdbcTemplate+代理模式+AOP+Spring事务+Spring集成MyBatis

十三、JdbcTemplate JdbcTemplate是Spring提供的一个JDBC模板类,是对JDBC的封装,简化JDBC代码。 当然,你也可以不用,可以让Spring集成其它的ORM框架,例如:MyBatis、Hibernate等。 接下来我们简单来学习一下…

【LVGL】Guider 界面分析

文章目录 前言架构创建 UI切换界面空间释放分析创建页面空间变化 前言 分析Gui Guider-1.7.2-GA 生成的 LVGL 界面切换,资源管理等处理 架构 所有控件存放于同一个结构体 lv_ui 内,每个页面都至少包含 screen_xxx 和 screen_xxx_del 两个成员 typede…

Cask ‘oraclexxx‘ is unavailable: No Cask with this name exists.

brew search oracle-jdk或brew search --cask oracle-jdk 原因:Homebrew官方仓库不再维护多个旧版本的OracleJDK 不推荐使用Homebrew环境安装JDK //指定版本安装 brew install --cask temurin17 //设置 JAVA_HOME 环境变量 //找到安装的JDK 版本的路径 /usr/lib…

大数据可视化电子沙盘:前端技术的全新演绎

随着大数据时代的到来,数据可视化成为了一个重要的技术趋势。数据可视化不仅可以让复杂的数据变得更加直观易懂,还能帮助我们更好地分析和理解数据。在本文中,我们将深入探讨一种基于HTML/CSS/Echarts等技术的大数据可视化电子沙盘&#xff0…

MAC系统下安装VUE

下载node.js 点击链接 选择图片中的稳定版本 安装node.js 打开终端,输入 node -v 和 npm -v 显示如上信息表示安装成功 安装vue脚手架🔧 sudo npm install -g vue/cli查看vue版本 vue -V6. 启动项目 1 采用 图形页面方式 控制台输入&#xff…

前端菜鸡流水账日记 -- Pagination分页

哈喽哇大家,老规矩,见面先问好,今天是端午节假期后的第一天上班,大家假期开心吗,哈哈哈哈,我还是蛮开心的... 今天这篇笔记要分享得主要是一个分页器,但是不一样得地方是因为,首先是…

5G和LED显示屏的关系

显示屏和5G看似没有直接关系,但实际上,两者之间的关联非常密切。北京的LED显示屏行业依赖于网络技术的进步,才有了今天的发展。随着5G时代的到来,万物互联的全面开启将为LED显示屏行业带来新的机遇和挑战。本文将详细探讨5G与LED显…

项目采购管理

目录 1.概述 2.三个子过程 2.1.规划采购管理 2.2.实施采购 2.3.控制采购 2.4.归属过程组 3.应用场景 3.1.十个应用场景 3.2.软件开发项目 3.2.1. 需求识别和分析 3.2.2. 制定采购计划 3.2.3. 发布采购请求 3.2.4. 供应商评估与选择 3.2.5. 合同签订 3.2.6. 采购…

解决Unity-2020 安卓异形屏黑边

背景 Unity 2020.3.17 版本开发的游戏,打apk包,发现两个问题 如图下午所示,实体白色导航栏,阻挡了整个安卓UI界面,难看还影响美观。 安卓系统 12-13 版本手机,异形屏。一侧安全区黑边遮挡,占空间…

波卡近期活动一览| Polkadot Decoded 2024 重磅来袭,300 万 DOT 将用于 DeFi 增长

Polkadot 生态近期活动精彩纷呈,线上线下火热进行中!此外,Polkadot 2.0 的关键升级即将到来,Gavin Wood 博士也将在最新访谈节目中分享更多关于波卡的未来发展蓝图。波卡 DAO 通过提案,分配 300 万 DOT 支持 DeFi 生态…

C++ Windows下Glog日志库安装使用教程

🙋 介绍:glog是google推出的一款轻量级c++开源日志框架。  环境配置:windows+VS2015+gflags 2.2.2+glog-0.3.5。为避免新版本(glog V0.7.1)踏坑,建议装低版本,这里我选用的是V0.3.5。 1. 下载 在gflags官方中下载gflags代码,官方地址 在Glog官方中下载,githut地址:…

把纸质文件扫描成word电子版的3种方法!

在数字化日益盛行的今天,纸质文件转化为电子版的需求愈发强烈。不论是出于环保的考虑,还是为了提高工作效率,将纸质文件扫描成Word电子版都是一项必备技能。那么,如何将纸质文件轻松转化为Word电子版呢?本文将为您揭秘…

Docker Nginx

Docker官网 https://www.docker.com/https://www.docker.com/ 删除原先安装的Docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ …

linux 线程

文章目录 1.线程概念线程优点线程缺点 2.Linux线程和进程3. Linux线程控制线程创建---pthread_create线程等待---pthread_join线程退出线程分离---pthread_detach 1.线程概念 进程内核数据结构 进程代码和数据 我们的代码在进程中,全部都是串行调用的 进程创建&am…

vue+intro.js实现引导功能

前言: 使用 intro.js这个插件,来实现一个引导性的效果,适用场景,比如:新手引导页,操作说明等等 效果图: 官网地址:点我 实现步骤: 1、安装 npm install intro.js --sa…

C++程序员笔试训练

面试题1:使用库函数将数字转换位字符串 考点:c语言库函数中数字转换位字符串的使用 char *gcvt(double number, int ndigit, char *buf);参数说明: number:待转换的double类型数值。 ndigit:保留的小数位数。 buf&am…

AI大模型爆发,你还不学就晚了!抓住时代机遇,快速入门指南!

AI大模型风起云涌,你准备好乘风破浪了吗? 在一个阳光明媚的午后,小李坐在自己的工位上,眼前的代码如同繁星般繁多。他是一名资深的软件工程师,但在最近的技术浪潮中,他却感到了一丝不安。他的朋友圈里&…

绝了!篇篇10万+的AI治愈系插画,完整版项目拆解(附提示词)!

大家好,我是向阳 最近,治愈系插画在小某薯上热度很高,比如这个号,每一篇的笔记数据都不错,2个月时间涨粉7.3万。 然后,我偶然发现,有人把这样的治愈插画用到公某号爆文的配图上,每一…

探索Docker容器网络

Docker容器已经成为现代应用部署的核心工具。理解Docker的网络模型对于实现高效、安全的容器化应用至关重要。在这篇博客中,我们将深入探讨Docker的网络架构,并通过一些代码例子来揭示其底层实现。 Docker网络模式 Docker提供了多种网络模式&#xff0c…