当前位置:首页>科技 >内容

如实使用网格图 trellis chart来构建可视化作品

2024-05-25 08:33:48科技漂亮的斑马

介绍如实用格子图搭建视觉作品?一般来说,有几种不同的制作方法,比如用CASE计算,手动分配每行的x轴和y轴。但是如果数据有很多行,就会变

如实使用网格图 trellis chart来构建可视化作品

介绍

如实用格子图搭建视觉作品?一般来说,有几种不同的制作方法,比如用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()))))

我们终于搞清楚了计算字段,并把它们放到了视图中,这样我们就可以放心地使用这个计算字段,而不用担心因为没有理解计算的意义而带来的麻烦。

声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们

Top