这篇文章还是翻译自Toan Hoang大神的tableaumagic网站,大神把这个归类为QT(初级)图表。连接条形图我最早是在使用微软的Powerbi里见到的,那是Powerbi自带的图表,算是条形图的一个美化版本,也是以前常用的。Toan Hoang在Tableau中实现了这种图形,所以我就特别有兴趣学习一下,并加入了自己的一些理解。
https://tableaumagic.com/tableau-qt-connected-bar-charts/
数据用自带的超市数据
返回数据源面板,创建Orders表的并集
创建并集意味着数据量翻倍,比如原来是10条数据,又复制出10条一样的,变成20条数据。同时增加了一个字段[Table Name],用来标识Orders(原表数据)和Orders1(新复制出的数据)
-创建[Size]参数,浮点,0.35
其实不创建这个参数也没问题,因为这个常量0.35和后面修改大小的数据0.7对应,所以也基本没有调整的必要。
- Date (Month)=
IIF([Table Name] = "Orders", DATEPART('month', [Order Date])-[Size],DATEPART('month', [Order Date])+[Size])
原文最后要×10,我觉得没用就省略掉了,更便于理解。如果不创建上面的参数,[Size]用0.35代替也可以。
这个计算字段的作用就是把时间拆分成月份纬度,并且把月份的宽度控制在0.7,以便配合条形图的宽度。
- Sales (Bar)=IIF([Table Name]="Orders", [Sales], 0)
画条形图用,一开始我天真的认为这个字段没用,想着直接用[Sales]/2代替,其实还是没理解大神设计的原理。
- [Order Date]拖到筛选器,随便选择一年
- [Date (Month)]拖到列功能区,右键选择成纬度
- [Sales]拖到行功能区,标记类型选择"区域",颜色选择浅蓝
- [Sales (Bar)]拖到行功能区,标记类型选择"条形图",颜色选择深蓝
这里要解释一下原理,其实就是把一个月拆成2个值,比如1月拆成了0.65和1.35,这样每个月的数据就能显示成横线,条形图则只显示了0.65这个轴的,然后通过调整大小,来与区域图重合。
- 右键[Sales (Bar)]选择双轴,同步轴,删除掉标签栏“总和(Sales (Bar))”里的“度量名称”,重新调整一下颜色
- 调整条形图大小,宽度固定在0.7,如下图,保证了条形图的宽度在0.65到1.35之间,与区域图重合。
原文是固定宽度7,因为我上面的Date (Month)没有×10,所以这里也就变成了0.7
大致效果如下:
- 适当做一些美化工作
这里要重点说一下,原文用的是日期,通过计算字段转换成了数值纬度,如果横轴本身就是文字的纬度,比如国家,那么就先写一个计算字段,把这些国家转换成数值,就可以了,但是横轴就只能显示数值了,我想到的解决办法,就得再做一个横轴的工作表到仪表板里拼接两个工作表。
此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下