超越原生,散点图实现华夫饼图
共 3756字,需浏览 8分钟
·
2024-04-20 12:49
之前我们介绍过了如何使用新卡片图实现华夫饼图。
但是利用卡片图实现的华夫饼图有一些缺点,形状之间的大小跟间距不太好把握,而且有时形状大一点的话显示就会不正常,需要做出二次调整。
今天给大家介绍一种原生视觉对象生成华夫饼图的更佳方案,既简单又美观。
上图是利用散点图实现的华夫饼图,相比于卡片图,散点图实现的华夫饼图虽然标记的形状可选形状比较少,但是看起来要比卡片图实现的要整齐很多,并且实现也更加简单。
在创建华夫饼图之前,我们需要准备一个表,有 4 列,200 行。分别是 X 轴、Y 轴、索引和图例。X 轴和 Y 轴都是 1 - 10 的序列,因为华夫饼图通常是 10 × 10 的布局。然后索引列等于 X 轴和 Y 轴两者的排序。最后一列是图例,分为两种类型填充和不填充,分别对应华夫饼图的两种填充颜色。
每个图例类型都有其对应的 100 行数据。
这次计算以销售额占比为例。
Sales % of Total =
DIVIDE ( [Sales], CALCULATE ( [Sales], ALL ( 'Dim 地理位置'[地区] ) ) )
新建一个度量值判断计算索引,这里计算出了两种图例的索引,如果销售额占比大于等于索引,而且图例类型是填充,返回 1,这是填充的索引,也就计算出了填充的形状数。相反,如果销售额占比小于索引,而且图例类型是不填充,也返回 1,这是不填充类型的索引。都返回 1 是因为我们需要把这个度量值加到视觉对象上当做一个筛选器,来查看当前索引是否要保留。我们只保留该度量值计算等于 1 的索引,这样我们就能得到两种类型的索引位置和数量。
Is Waffle Data Point =
VAR _MaxIndex =
MAX ( '华夫饼图数据'[索引] )
VAR _Comparator =
ROUND ( [Sales % of Total] * 100, 0 )
VAR _LegendValue =
SELECTEDVALUE ( '华夫饼图数据'[图例] )
RETURN
SWITCH (
TRUE (),
_MaxIndex <= _Comparator
&& _LegendValue = "填充", 1,
_MaxIndex > _Comparator
&& _LegendValue = "不填充", 1,
0
)
新建一个散点图,在值上添加索引,X 轴上添加 X 轴,Y 轴上添加 Y 轴,图例上添加图例字段。
我们可以看到,上方散点图在没有进行筛选的情况下,两种类型的每一个点都会显示(不填充的标记被填充所覆盖)。
在筛选器上添加 Is Waffle Data Point 度量值,筛选条件是等于 1。
此时已经可以分辨出两种填充类型了。
但是 X 轴和 Y 轴的范围导致散点图会显示不完整,我们可以看到 X 轴和 Y 轴为 10 的时候,只显示半个点, 所以两轴的最大值应该是 10.5,最小值为 0.5。
将 X 轴和 Y 轴的范围都设置为 0.5 — 10.5,关闭值和标题。
此时所有的标记形状都可以正常显示了。
转到标记选项,将形状类型改为方框,再将大小调为 60。
再修改一下标记颜色。
最后再来个华夫饼图创建一个动态标题。
Waffle Title =
VAR _Category =
SELECTEDVALUE ( 'Dim 地理位置'[地区], "全部" )
VAR _Value = [Sales % of Total]
RETURN
_Category & ":" & "销售占比 "
& FORMAT ( _Value, "#0%" )
点击标题文本的 fx 选项,选择 Waffle Title 字段。
看一下最终效果。
感兴趣的小伙伴赶快去试一试吧。
我们为你整理了一个 Power BI 小小学习素材包,可以点击下方按钮购买体验。
数据分析精英都在学习的五大能力境界
分析师必备:业务数据分析能力五层成熟度路线图框架全解
↓ 数据分析精英正在学习的课程 ↓
可以体验百万级真实企业项目案例,彻底打通任督二脉
一数据分析师训练营 课程表一
时间:2024年05月 班
主题:《业财分析之道》终极业财融合,分析师必备。[私信报名咨询]