Top 100 Brands- TOPN 分行列展示

比如下圖中的TOP100,如果不做修飾,在Tableau中直接作圖的話,這100個類別會在行或列上顯示,這樣的話這個行就會很長,列就會很高,不能在一個視區裏看完。所以我們把他們分成M*N的形式,所有風光一覽無餘。
image.png
製作要點:
1. 這裏可以看到上圖共有100個類別,分成20行5列。(其實這個圖不僅僅侷限在剛好能20X5=100的這種形式,如果列表少於100或者是其他,只要我們的行列乘積大於類別數,都是可以做的。)那麼我們肯定是要先生成兩列數據,分別對應着行列。列的話是20個[1,2,3,4,5],行的話是5個[1,2,3,…20]。這樣的話行和列做個笛卡爾積就有了:{1:[1,2,3,…20],2:[1,2,3,…20],3:[1,2,3,…20].4:[1,2,3,…20],5:[1,2,3,…20]}。
2. 做左側的#1是添加了一個雙軸做出來的。
3. 格式設置的時候注意左側座標軸黑色實線是用參考線構建的(用零值線也可以),下方黑色實線叫做軸捲尺.
下面開始介紹如製作:
開始之前需要了解數據只需要有兩列:一列爲類別,另一列爲數值。
1. 首先創建行列字段:
Col = INT((INDEX()-1)/20)

Row = (INDEX()-1) % 20

  1. 將Col和Row拖放到列和行,並將兩者由連續改爲離散(這步很重要)
  2. 把Brand字段拖放到文本上。
  3. 把Col和Row的計算依據都改爲Brand。 image.jpeg
  4. 把值拖放到列,並對Brand進行排序,選擇按value字段的求和進行降序。然後對行上的Row也做排序。
    image.jpeg
    基本樣子就出來了
    image.jpeg
  5. 接下來我們把[0,1,2,3,4]改爲[#1-20,#21-40,#41-60,#61-80,#81-100],同時在添加排名編號。
    6.1 創建字段:

Rank = “#” + STR(RANK_UNIQUE(SUM([Value ($M)])))

Rank_Set =
CASE [Col] WHEN 0 THEN "#1-20"
WHEN 1 THEN "#21-40"
WHEN 2 THEN "#41-60"
WHEN 3 THEN "#61-80"
ELSE "#81-100"
END
或者使用IF表達式
IF [Col]=0 THEN "#1-20"
ELSEIF [Col]=1 THEN "#21-40"
ELSEIF [Col]=2 THEN "#41-60"
ELSEIF [Col]=3 THEN "#61-80"
ELSE "#81-100"
END
6.2 然後我們用Rank_Set字段去替換列上的Col
7. 在列上添加計算字段-SUM([Value (KaTeX parse error: Expected 'EOF', got '#' at position 241: …mage/format,png#̲align=left&disp…M)])*0.3。將-SUM([Value ($M)])*0.3顏色的透明度設置爲0。
9. 接下來就是一些對齊和格式的設置了。
10.完成結果如下圖
image.jpeg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章