导语
如实使用网格图(trellis chart)来构建可视化作品?一般来说有几种不同的方式来制作它,例如使用 CASE 计算并手动分配每行的 X 和 Y 轴。但如果数据有很多行时,这将变得非常耗时。因此,找到 X 和 Y 轴的计算字段是完成作品最有利的方式。
幸运的是,一些数据爱好者分享的文章给了计算字段。如下:
X 轴:((index()-1)%(int(SQRT(SIZE()))))
Y轴:int((index()-1)/(int((SQRT(SIZE())))))
我们可以将它们 Copy 到自己的计算字段中,然后按照说明完成想要的操作。但作者在使用的时候并不是很了解这个字段的意义,所以本篇文章就是计算字段的分析,可以帮助咱们理解这个计算字段。在这里将使用超市数据来演示步骤,使用 17 个子类别的销售额来重新创建此图表。
第一步:计算字段的推导
从本质上来说,网格图是排列成方形的小图表集合。所以我们需要知道方形行数的计算方式。Int(Sqrt(Size()))能执行此操作,其中 size()是视图中的行数。在这个例子中,它是 17 。
目前为止,计算字段为:
X 轴:int (SQRT(SIZE())
Y 轴:int (SQRT(SIZE())
第二步:分离网格图的各个部分
现在需要分离出网格图的各个组成部分。Index()就是为视图中的每一行分配一个数字,如下所示:
使用Index()除以 int(SQRT(SIZE()) 将给出网格图中每行的位置。所以,现在可以更新计算字段为:
X 轴:index()/(int((SQRT(SIZE()))))
Y 轴:index()/(int((SQRT(SIZE()))))
第三步:显示整数值
但是,如下图所示,上述计算得到了许多行和列:
这里需要减少行和列的数量,以便只显示整数值。INT()可以进行 X 和 Y 轴计算。更新的计算结果为:
x轴:int(index()/(int((SQRT(SIZE())))))
y轴:int(index()/(int((SQRT(SIZE())))))
结果如下图所示:
第四步:重新分组
就快成功了。现在需要做的就是将这些值分开,以便它们不像上面的图表那样分组。这里可以使用 '%' 符号来代替分隔符号来完成。它能用来计算除法的余数。例如 7%4 = 3 。可以看到 “Remainder” 列下的行。
每行的值将会以四个一组的形式出现,不用担心下一组 4 个子类别与另一个子类别相同,因为它们将位于网格图中的不同行上。所以可以将 X 轴和 Y 轴的字段更新为:
X 轴:index()%(int(SQRT(SIZE())))
Y 轴:int((index())/(int((SQRT(SIZE())))))
结果如下所示:
第五步:检查和修正
上面的图表看起来不太正确,所有数值都向右移动了一个位置。这可以通过在 X 轴和 Y 轴的 index 加上 -1 来纠正,以便修正它:
X 轴:(index()-1)%(int(SQRT(SIZE())))
Y 轴:int((index()-1)/(int((SQRT(SIZE())))))
我们终于推算出了计算字段,并将它们放在视图中,这样一来就可以放心的使用这个计算字段,不用担心不理解计算含义而造成的麻烦。
-
可视化
+关注
关注
1文章
1194浏览量
20936 -
网格
+关注
关注
0文章
139浏览量
16014
原文标题:理解在 Tableau 中制作网格图的计算字段
文章出处:【微信号:TableauChina,微信公众号:Tableau社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论