用Tableau画曲线图系列(五)彩虹色带图(下)

上一篇文章《用Tableau画曲线图系列(四)彩虹色带图(上)》,我们已经把色带画出来了。这篇文章我们来画堆积柱状图的部分。说是柱状图,其实还是用多边形来画。

数据集不变,继续创建计算字段。

创建柱状图的计算字段

  • Path4=
IF [表名称]='Ribbon.csv' then 1
ELSE 4
END
  • 创建数据桶Path4 (bin)
  • IndexPath4Bin=INDEX()

  • X-bar=

case [IndexPath4Bin]
when 1 then [IndexYear]*2-1
when 2 then [IndexYear]*2
when 3 then [IndexYear]*2
when 4 then [IndexYear]*2-1
END
-1
  • Y-bar=
case [IndexPath4Bin]
when 1 then [CRunS]
when 2 then [CRunS]
when 3 then [CRunS]-window_max(sum([Value]))
when 4 then [CRunS]-window_max(sum([Value]))
end

制作图形

  • 把[X-bar]拖到列功能区,[Y-bar]拖到行功能区。

  • 将[X-bar]标签里的路径[Path102 (bin)]更换为[Path4(bin)]。

这里一定要注意,Path4(bin)也要勾选显示缺失值。

  • 编辑[X-bar]的表计算依据,如下图:
  • 右键[Y-bar],表计算依据选择[Path4(bin)]。
  • 将列和行都进行双轴操作,并同步轴。

调整颜色和透明度后,就得到完整图形了。

至于原理部分,我只简单介绍一下,确实很烧脑,我也是研究了很长时间才大致明白。

我们选中色带的一段多边形,可以从下面的示意图中看到,PathGroup将path数据桶中的102个点分成了4段,来画多边形,如下图所示:

而计算Y轴需要前一年和本年的Value和RunS值,然后再配合PathGroup计算求出Y轴的相对位置,其计算原理如下图所示:

image.png

堆积柱形图就简单了,数据桶中就4个点,用4个点画一个长方形,当然只需要本年的Value和RunS值即可。

虽然原理很复杂,但是制作起来也不是太难,主要是数据源的处理一定要做好,表计算和数据桶的操作要多注意,容易出错。

对于普通用户来说,原理部分其实并不重要,能做出来即可,需要的时候替换一下数据源就可以了。如果做不出来,大家也可以下载我制作好的Viz,继续研究。

https://public.tableau.com/profile/jiangbin#!/vizhome/Ribboncharts/Ribbon2

此篇文章已发布到我的公众号: saodisir,有兴趣也可关注一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容