关于 PowerBI 的应用,从一定意义上,已经完成了整体构建,更多都是在重复。
重复,是无止境的。只有适度抽象,才能看到本质。
很可惜,绝大多数用户都在长期索取技巧,模板的过程里丧失了抽象能力。在《BI 真经》的学习种,我们讲试图帮助大家修复这项能力。
今天,来回答一个关键的问题,如下:
上图如何做?
图表解析
Power BI 默认是没有该图表的。仔细观察该图表可以发现,它满足以下几个特性:
- 地图可以是任意的;
- 气泡表示主值的大小;
- 气泡显示气泡的标签;
- 气泡显示气泡的文本;
- 位置是任意的。
从需求上来说,这些特性足以构成非常通用的需求。
然而,在 Power BI 中是无法做到这种图表的。
作图思想
与《BI 真经》思想一致,一个关键思想就是:分治法。
即:对一个复杂问题,可以拆分之,解决子问题,最后合并成原问题的解。
在作图领域,我们只需要考虑如何拆解一个图表成为已知图表再实现即可。
拆解
在熟悉了 Power BI 的基本图表元素后,包括:柱形图,条形图,折线图,散点图等。这些图可以做什么,需要非常清楚。然后所有的其他需求都可以通过这个模式来进行化解。
Power BI 的默认地图和散点图都只能显示标签和气泡,但是不能显示值。
而 Power BI 的折线图则可以显示很特别的值格式。
而要显示的地图内容我们需要提前构建。
最终,让这一切配套在一起。
坐标系统
在这个分治法的策略下,最核心的一步就是:如何合并?
我们需要一个统一的坐标系统。
我们可以在 Excel 中构建这个坐标系统如下:
如下:
如果没有看明白,再看:
在 100 × 100 的坐标系中,我们可以提前准备好点的位置,如下:
这非常简单,只需要将要表示的点的 X 与 Y 的坐标填写进入 Excel 表格即可。
X 与 Y 是多少可以比照上述的坐标体系得到即可。
Power BI 的实现 - 多层图表
整个图表由三层构成:
如果没看懂,再来看:
如果还没看懂,再来看:
现在的问题转为:
- 散点图
- 折线图
- 地图
三者如何统一以及如何处理各个细节。
细节处理
这里的技巧在于:折线图。
我们可以通过计算组,让折线图显示我们希望的文本。同时设置折线图的粗细为 0,这样就消失了。
关于这一点,我们在此前的文章已经详细说明,此处不再展开。可以参考:
- 同时显示值和率
- 长条截断显示的方法
这里涉及如何用计算组显示复杂信息的技巧,此前的文章已经写得很清楚,这里不再重复。另外,《BI 真经》的《PBI 高级》已经给出计算组解释的终极诠释,建议扎根 PowerBI 或 DAX 的伙伴尽早囤积。
统一处理
我们将:
- 散点图
- 折线图
的 X 轴和 Y 轴的范围都设置为 1 到 100。
这与 Excel 中的坐标系是一致的,这样所有的元素就是统一的排列到一起了。
实现
拼起来,如下:
总结
本文给出了 Power BI 中基于地图(任何自定义图)的多信息密度展示的终极思想和方法。
利用分治法的思想将作图问题化解为各个子问题,每个问题由一个 Power BI 组件或特性来实现。
再将这些实现在统一的坐标体系下拼合起来,即可。
如果举一反三,我们还可以进一步制作:
一个圈点中写一断文字,一个独立的圈点等。
另外,如何在 Excel 快速实现坐标系坐标的选择也是值得思考的问题。