很显然,不知道本来的软件是什么,但用 PowerBI 也是可以完成的。
利用这个方式,还可以做出这样的图:
整个图形有两部分构成:
- 数值部分
- 增长率部分
而从作图角度的实质挑战是如何制作这个区域。
难题分析
首先来看这个区域的构成:
没错。这的确是一张图。
这里的奥秘在于,它们彼此为什么可以分开,而应该是这样的吗?如下:
很明显,对于办公用品,技术,家具来说,是三个独立的事情;而对于2019以及2020来说又具有连续性,所以,这是:
大颗粒离散下的局部连续型对比。
我们称之为:区块对比,且块内连续。
技巧设计
大家都知道,区块可以认为是类别,直接使用类别即可。
而连续型元素,就有了排序的说法了,我们希望排序的依据是按年份来。
再有,在区块之间要形成断层,以实现分隔效果。
为此,我们作了这样的设计:
没错,其实我加入了“洋葱”。
“洋葱”,就是那种加不加不影响吃饱,但却是一个重大技巧的东西。在这里就体现在:空白元素。
你还可以举例出:还有什么场景是 空白元素 的妙用吗?
我们通过空白元素让区块的数值归零后产生区块之间的间隔效果。
当然,需要开启这个效果,还需要作一个小的设置,如下:
必须设置:显示无数据的项目。
这样就产生了预期的效果,如下:
很明显,这个表是为了专门来作这个图的,它实际上,与数据模型本身并没有融合。
动态挂载
将用来作图的辅助表与数据模型在计算时完美结合的过程,我们称为:动态挂载。在我即将推出的《PowerBI高级》中将更全面地介绍这项技巧的使用。这里,可以创建这样的度量值如下:
代码语言:javascript复制View.Trend.KPI.Value.Product =
CALCULATE(
[KPI] ,
TREATAS(
SUMMARIZE( 'X.Axis' , 'X.Axis'[Product] , 'X.Axis'[Year] ) ,
'Product'[Category] ,
'Calendar'[YearName]
)
)
可以使用 TREATAS 函数实现这种动态挂载效果,作为更精巧的演示,这里使用了一次性的双列挂载,同时将产品和年份挂载到数据模型的相应表上,实现动态计算。
举一反三,可以实现 YTD 的计算,如下:
值得注意的是:
- 2019YTD和2020YTD应该随着时间自动变化。
- 2019YTD的内容应该和2020YTD自动匹配,都是年初到当月当日。
应用扩展
除了这里写的场景,这还特别适合用来比较同一层面的不同对象,如:品牌;大区;门店等。
总结
在 PowerBI 的原生可视化对象中,给我们直接提供的能力是有限的,但是通过想象力和创造力,我们可以构建出很多图形。还有什么好玩的图形欢迎小伙伴们提出。