BOSS:白茶,能不能做个柱形图带折线的?
白茶:可以啊,老板!
BOSS:(看来这个比较简单)能不能做出环比增长和下降的折线标识?
白茶:可以啊,老板!
BOSS:(......)那,增长和下降的标识能不能定在顶栏不动?不然和柱子混合我看着有点晕。
白茶:这个有点难啊,老板。
BOSS:((p≧w≦q))就要这个!
在项目实施的过程中,柱形折线图可以说是我们使用频率较高的可视化图形之一,默认的呈现效果如下图:
很多用户和白茶反映过,能不能让折线的标签固定在上方?也不要折线,有每个月的节点就可以,这样看起来能更直观一些。
用户的这个需求是很合理的,毕竟BI可视化的根本,是能将重要信息简洁明了的呈现给用户。
先来看看本期的案例数据:
一张销售事实表,案例数据比较简单,导入到PowerBI中,添加日期表。
代码语言:txt复制Dim_Data =
GENERATE (
CALENDAR ( MIN ( 'Fact_Sales'[DATE] ), MAX ( 'Fact_Sales'[DATE] ) ),
VAR DA = [Date]
VAR YEAR =
YEAR ( DA )
VAR QUARTER =
"Q" & FORMAT ( DA, "Q" )
VAR MONTE =
FORMAT ( DA, "MM" )
VAR DAY =
DAY ( DA )
VAR WEEKID =
WEEKDAY ( DA, 2 )
RETURN
ROW (
"年度", YEAR,
"季度", QUARTER,
"月份", MONTE,
"日", DAY,
"年度季度", YEAR & QUARTER,
"年度月份",
YEAR & "." & MONTE
)
)
建立模型关系如下:
添加如下基础度量值。
销售数量:
代码语言:txt复制A.销售数量 =
SUM ( Fact_Sales[Quantity] )
上月销售数量:
代码语言:txt复制B.上月销售数量 =
CALCULATE ( [A.销售数量], DATEADD ( 'Dim_Data'[Date], -1, MONTH ) )
环比:
代码语言:txt复制C.环比 =
DIVIDE ( [A.销售数量] - [B.上月销售数量], [A.销售数量] )
如果直接将这三个度量值放入到柱形折线图中,效果如下:
很明显没有满足我们的需求。
用户需要的是既体现增长下降情况,并将折线转化为散点,固定在柱子上方。
那么该如何实现呢?
思考一下
1
2
3
......
其实,我们可以将环比度量值进行拆分。
正环比:
代码语言:txt复制D.正环比 =
IF ( [C.环比] >= 0, [C.环比], BLANK () )
负环比:
代码语言:txt复制E.负环比 =
IF ( [C.环比] < 0, [C.环比], BLANK () )
将其放入到柱形折线图中效果如下:
因为拆分出两个度量值,所以我们可以对正环比和负环比进行单独配色区分,以及样式调整。
注:柱形折线图默认只支持对柱子进行fx配色。
我们从上图中可以看出,增长和下降的问题已经解决了,但是固定顶层这个问题依然存在。
别急,我们添加两个度量值:
上限高度:
代码语言:txt复制F.次级坐标轴上限 =
500000000000
下限高度:
代码语言:txt复制G.次级坐标轴下限 =
-10000000000000
将上述两个度量值,依次添加到Y轴→次级坐标轴→开始值、结束值。
结果如下:
基本的效果雏形已经有了,我们美化一下,最终效果如下: