導語
如實使用網格圖(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文章
1200瀏覽量
21007 -
網格
+關注
關注
0文章
139瀏覽量
16044
原文標題:理解在 Tableau 中制作網格圖的計算字段
文章出處:【微信號:TableauChina,微信公眾號:Tableau社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論