使用FineBI绘制类桑基图

楼主
我是社区第82189位番薯,欢迎点我头像关注我哦~
编辑于 2020-8-1 16:16  

大家好,我是枫城,利用周六时间和大家说下类桑基图的制作流程。
一、制作原理
主要利用sigmod函数,也叫Logistic函数,是生物学中的常见S型函数,也称为S型生长曲线。其纵轴处于0-1之间,横轴定义域是-无穷,+无穷,例子里主要1-49个数据t来定义横轴的范围,函数曲线图如下所示:


涉及公式有:sigmoid=1/(1+exp(1)^-t) 排名=身价排名+((最终排名-身价排名)*sigmoid)   

注: 身价排名决定了曲线初始位置, (最终排名-身价排名)*sigmoid 决定了S曲线的高矮


二、FineBI制作过程

a.导入数据

[color=rgba(10, 18, 32, 0.64)]我们使用FineBI的话,主要操作是在X轴拖入t字段,Y轴拖入ft(排名字段),颜色处拖入国家字段即可,再给t,ft字段进行升序排序即可。
[color=rgba(10, 18, 32, 0.64)]先下载源数据,主要涉及两张表 [color=rgba(10, 18, 32, 0.64)] Wordcup.xlsx (9.48 KB, 下载次数: 105) 辅助数据.xlsx (9.13 KB, 下载次数: 245) 。表中数据结构如下所示:


将两张表直接导入我们所需的业务包,如下图所示:


b.制作所需自助数据集

新建自助数据集,选择Wordcup所有字段,左右合并Wordcup辅助数据表,如下图所示:


新增列,设置列名为 sigmoid,选择公式为 sigmoid=1/(1+exp(1)^-t),效果如下所示:


新增列,设置列名为 ft 即排名,选择公式为 ft=身价排名+((最终排名-身价排名)*sigmoid),身价排名决定国家的初始位置,(最终排名-身价排名)*sigmoid,决定了S曲线的高矮,效果如下所示:


由于数值型字段,在横轴和纵轴只能求和,所以我这边将国家以(t,ft)放于X,Y轴,故将其表示为文本型,如下所示: (这边给出ft文本型方式,t文本型操作相同,不做叙述)


为了给文本tft字段排序,新增ft数值型,ft选择数值型,如下图所示: (t数值型操作相同,不作重复叙述)


c.创建仪表板

新建组件,选择数据来源为桑基图 自助数据集,将t文本型放入横轴,将ft文本型纵轴,重命名为排名,将国家放入颜色,并将数据点用线进行显示,如下图所示:


将t数值型,ft数值型放入明细过滤器,选择t文本型,选择升序,选择按t数字型排序,同理将ft文本型ft数字型升序排序,如下所示:


d.组件样式设置
  • 取消标题

选择组件样式,点击标题栏,取消显示:
  • 设置背景框

选择组件样式,点击背景,选择组件边框图,如下图所示:

点击下载背景框图片: 主屏显示.rar (12.14 KB, 下载次数: 85)
e 其他设置
  • 排名设置:

新建两个图片组件,依次放入图片1图片2,并图片设置,适应组件,如下所示:

点击下载图片1,图片2: 图片12打包.rar (137.05 KB, 下载次数: 102)
  • 标题设置:

新建图片组件,放入标题图片,设置为适应组件,再新建3个文本组件,均开启悬浮,输入对应文字 身价排名世界杯球队排名变更变化图最终排名,放到对应位置,如下图所示:

点击下载标题图片: 标题.rar (20.27 KB, 下载次数: 207)

三、效果预览



总结:此图有一定局限性,对于多数据排名,会显得比较拥挤,期待后续的完善




分享扩散:
参与人数 +1 F豆 +200 理由
athlonk7 + 200 默默地点个赞,然后闪人

查看全部评分

沙发
发表于 2020-8-1 20:08:33
板凳
发表于 2020-8-1 21:13:25
地板
发表于 2020-8-1 22:23:57
一说sigmoid我下意识想到逻辑回归了…竟然还能这样用~
5楼
发表于 2020-8-4 10:18:33
6楼
发表于 2020-8-4 10:39:11
眼花缭乱
7楼
发表于 2020-8-4 11:15:08
优秀
8楼
发表于 2020-8-4 12:00:17
厉害了
9楼
发表于 2020-8-4 12:15:52
膜拜大佬
10楼
发表于 2020-8-4 14:29:11
这图是看什么的?
11楼
发表于 2020-8-28 08:47:08
好好的研究了下枫城大佬的这个排名桑基图,大概知道基本原理了,但如果是非数字排名要怎么办,好像目前FineBI好像实现不了,FineReport有插件可以实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表