介绍如实用格子图搭建视觉作品?一般来说,有几种不同的制作方法,比如用CASE计算,手动分配每行的x轴和y轴。但是如果数据有很多行,就会变
介绍
如实用格子图搭建视觉作品?一般来说,有几种不同的制作方法,比如用CASE计算,手动分配每行的x轴和y轴。但是如果数据有很多行,就会变得非常耗时。因此,找到X轴和Y轴的计算域是完成工作最有利的方式。
好在有数据爱好者分享的文章给出了计算字段。如下所示:
x轴:((index()-1)%(int(SQRT(SIZE())))
y轴:int((index()-1)/(int((sqrt(size()))))
我们可以将它们复制到我们自己的计算字段中,然后按照说明完成所需的操作。但是作者在使用的时候并不是很清楚这个字段的含义,所以这篇文章就是计算字段的分析,可以帮助我们理解这个计算字段。在这里,我们将使用超市数据来演示这些步骤,并使用17个子类别的销售额来重新创建这个图表。
步骤1:计算字段的推导
本质上,网格图是排列成正方形的小图表的集合。所以我们需要知道如何计算正方形的行数。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())))
步骤3:显示整数值
但是,如下图所示,许多行和列都是从上述计算中获得的:
这里您需要减少行数和列数,以便只显示整数值。INT()可用于X和Y轴计算。更新后的计算结果为:
x轴:int(index()/(int((SQRT(SIZE()))))
y轴:int(index()/(int((SQRT(SIZE()))))
结果如下图所示:
第四步:重组
我们快到了。你现在需要做的是把这些值分开,这样它们就不会像上面的图表那样分组了。您可以在这里使用“%”符号代替分隔符。它可以用来计算除法的余数。比如7% 4=3。您可以在“余数”列下看到这些行。
每一行的值将以四个一组的形式出现,所以不用担心下一组四个子类别会与另一个子类别相同,因为它们会位于网格图中的不同行上。因此,您可以将X轴和Y轴上的字段更新为:
x轴:index()%(int(SQRT(SIZE()))
y轴:int((index())/(int((SQRT(SIZE()))))
结果如下:
第五步:检查并纠正。
上面的图表看起来不对,所有的值都向右移动了一个位置。这可以通过将X轴和Y轴的索引加-1来校正,从而校正它:
x轴:(index()-1)%(int(SQRT(SIZE()))
y轴:int((index()-1)/(int((sqrt(size()))))
我们终于搞清楚了计算字段,并把它们放到了视图中,这样我们就可以放心地使用这个计算字段,而不用担心因为没有理解计算的意义而带来的麻烦。
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们