数据可视化的目的是为了更好地展示数据,让用户能够更好地理解和分析数据,有时候由于各种原因,会出现某个值非常大的情况,在做图表时难以体现其他数据,可视化效果大打折扣。
经常有人问如何处理异常值,这里给出一个简单方案。
以下面这个简洁的数据为例:
其中有个值888,与其他值不是一个量级的,直接用这个数据来做个柱形图,看起来是这样的:
除了这个最大值,其他值基本看不出来了,效果非常糟糕。
这种情况怎么处理呢?
如果想让其他值能显著的显示出来,基本思路是让异常值变小一点,与其他数据不要相差太大。
我们可以利用度量值,在保证其他数据不变的情况下,修改异常值的大小:
异常值处理 =
VAR A=CALCULATE([数据合计],TOPN(1,ALL('表'[类别]),[数据合计]))
VAR B=MAXX(FILTER(ALL('表'[类别]),[数据合计]<A),[数据合计])
RETURN IF([数据合计]=A,B*3,[数据合计])
其中数据合计 = SUM('表'[数据])
这个度量值中,变量A计算的是最大值,也就是异常值;变量B计算的是第二大值,也就是除异常值之外的最大值。最终逻辑是,如果某个类别的数据等于最大值,让它返回第二大值的3倍,其他数据不变。
换用这个度量值来做柱形图看看效果:
这样的图表看起来就正常多了,不仅其他数据能正常呈现,并且保证了异常值的相对优势。
不过为了能显示异常值的真正数据,还需要对这个图表进行一下处理:
1、关闭Y轴
Y轴刻度是按照调整后的数据来显示的,已经不准确,建议直接关掉。
2、添加自定义数据标签
这是最关键的一步,因为有了自定义标签功能,才能够如此处理。
打开数据标签里面的自定义标签,用正常的数据作为柱形图的标签:
参考:学会使用Power BI的自定义标签,更灵活设计可视化
这样设置以后,效果如下:
这看起来就正常多了。
3、添加截断标识
为了能体现C值的真正效果,我们再添加个截断标识。
插入直线,设置旋转30度,颜色为白色,并根据柱子的宽度拖拽合适的大小,
做出来一条线后,再复制出来相同的一条线,两条线放到C柱上:
这样就非常清晰地体现了最大值,同时兼顾了其他值的比较。
最后,如果担心移动图表,插入的截断标识错位了,可以先将图表置于底层,并框选柱形图和两条直线,点击格式>分组:
这样处理以后,截断标识就和柱形图合并到了一起,无论如何移动图表,都不会错位了。
以上关于异常值的可视化处理,你学会了吗?
PowerBI星球