《用Tableau画曲线图系列(二)》中我介绍了一条sigmoid曲线的画法,今天我们学习多曲线的画法。其实画多条sigmoid曲线和画一条曲线的方法基本一样,只有细微的区别。
创建数据集
数据集我们沿用上一次的,只是将原数据分成了A和B两组,而index也相应地进行了分组,用于绘制两条曲线。
group,Year,Value,Index
A,1991,51,1
A,1992,85,2
A,1993,32,3
A,1994,36,4
A,1995,71,5
A,1996,36,6
A,1997,52,7
A,1998,29,8
A,1999,24,9
A,2000,6,10
A,2001,87,11
A,2002,93,12
A,2003,42,13
A,2004,30,14
A,2005,51,15
B,1991,87,1
B,1992,3,2
B,1993,70,3
B,1994,42,4
B,1995,93,5
B,1996,95,6
B,1997,87,7
B,1998,73,8
B,1999,40,9
B,2000,77,10
B,2001,41,11
B,2002,88,12
B,2003,26,13
B,2004,41,14
B,2005,43,15
创建计算字段
创建的计算字段与上一篇完全一致,这里简单列出,请参考上一篇。
-
path=([Index]-1)*49
-
根据path,创建数据桶path(bin)
-
X=INDEX()
-
T=([X]-((WINDOW_SUM(SUM([Index]), -48, 0)-1)*49)-25)/4
-
startpoint=WINDOW_MAX(MAX([Value]), -48, 0)
-
endpoint=WINDOW_MAX(MAX([Value]), 1, 49)
-
Y=[startpoint]+([endpoint]-[startpoint])/(1+EXP(1)^-[T])
开始做图
-
将[Group]拖到颜色,标记选择“线”。
-
把[path(bin)]拖到行或者列功能区,右键看一下是否勾选了“显示缺失值”。勾选后,把这个[path(bin)]拖回到标记里的“路径”上。
path(bin)必需勾选“显示缺失值”,如果没有勾选,path(bin)只有开始和结束两个点,这是很多表计算没有结果的关键因素。
- 把[X]拖到列功能区,表计算依据如下:
- [Y]拖到行功能区,嵌套表计算中的四个计算字段的表计算依据如下(与[X]一样):
如果操作正确,sigmoid曲线图就应该出现了,下图增加了双轴标签。
也可以把标记改成“区域”,做成面积图或者开启堆叠做成堆叠面积图。
多条曲线的画法只有表计算稍微复杂一些,因为所有的表计算都要根据Group分组计算,所以需要重启间隔选择Group。这是与画一条曲线最大的区别。
而如果Value值是排名的话,那就变成了Sigmoid Bump Chart,我以前有一篇文章用Tableau画Sigmoid Bump Chart,大家也可以用来做参考。方法基本原理一样,但是本篇文章完全采用数据桶的方法制作。
我把两篇文章介绍的内容做好了一个Viz,大家可以下载进行研究。
https://public.tableau.com/profile/jiangbin#!/vizhome/sigmoidcurvedlines/sheet0
表计算是这里最大的障碍,对于初学者来说,很难理解,但也是进阶的必经阶段。我计划日后会写一些表计算的文章,介绍一些理解表计算的小技巧。这里就先不多说了。
推荐大家先学习喜乐君的新书《数据可视化分析:Tableau原理与实践》,里面有大量关于表计算基本原理的讲解。
此篇文章已发布到我的公众号: saodisir,有兴趣也可关注一下
网友评论