编辑于 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文本型操作相同,不做叙述)
为了给文本t,ft字段排序,新增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)
三、效果预览
总结:此图有一定局限性,对于多数据排名,会显得比较拥挤,期待后续的完善。
|