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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值