PowerBI 完美实现银丝图高亮显示豪横品牌

2020-03-25 17:36:54 浏览数 (1)

http://mpvideo.qpic.cn/0bf2amaagaaa6uanpc3ypvpfaa6dambqaaya.f10003.mp4?dis_k=86b4c176a19487f6102b765b0e15c3b2&dis_t=1585128971

客户提出我们需要在无数个牌子中,高亮显示一个突出的,包括它的指标值,如下:

很显然,PowerBI默认并不支持。

但是罗叔提出的DAX驱动可视化可以化解这一尴尬局面,得到:

不光如此,如果真的有这么多牌子,我们还是希望得到实时对比效应的,我们更进一步,则有:

鼠标悬停时,实时比对,并用不同颜色区别不同的点,非常巧妙。值得一提的是一个超级细节:

为了快速区分对比项,这里用【所选】高亮显示。

制作方法

制作方法其实非常简单,如下:

我们将两个折线图重叠,分别是【1】和【2】,用树形图实现图例【3】以及一个普通的切片器【4】。

只不过这里需要使用 DAX 来判断需要的显示方式。

图形维度

这里使用非侵入式设计构造一个维度如下:

代码语言:javascript复制
Dim.Product =
UNION(
ADDCOLUMNS(
    VALUES( Model_Product[产品子类别] ) , "Type" , "Normal"
),
ROW( "产品子类别" , "所选" , "Type" , "Highlight" )
)

DAX 驱动可视化

接着,写出关键的度量值,如下:

代码语言:javascript复制
KPI.Selected.Highlight =
VAR X = SELECTEDVALUE( 'Model_Product'[产品子类别] )
VAR Legend = SELECTEDVALUE( 'Dim.Product'[产品子类别] )
VAR LegendType = SELECTEDVALUE( 'Dim.Product'[Type] )
RETURN SWITCH( TRUE() ,
    Legend = "所选" , CALCULATE( [KPI] , TREATAS( { X } , Model_Product[产品子类别] ) ) ,
    LegendType = "Normal" , CALCULATE( [KPI] , TREATAS( { Legend } , Model_Product[产品子类别] ) )
)

这个度量值说来巧妙,需要您慢慢体会其中奥秘。

辅助图形

这里为了实现图例的辅助效果,创造性地使用了树形图,这是我们第二次在作图中实现这个技巧来制作图例,如下:

并且对其动态染色,如下:

代码语言:javascript复制
Color.Highlight =
VAR ItemSelected = SELECTEDVALUE( Model_Product[产品子类别] )
VAR Legend = SELECTEDVALUE( 'Dim.Product'[产品子类别] )
RETURN IF ( ItemSelected = Legend , "#FFCB00" , "#E6E6E6" )

辅助设置

对于高亮的线,我们也做辅助设置,如下:

我们将默认的线宽设置为0,而只是保持:

完结,撒花。

总结

DAX驱动可视化的各种技法将收录在我们的课程《BI真经之BI可视化》中,《BI真经》共七部,学习 PowerBI 不可少,为什么,因为它是真经。

0 人点赞