Power BI 模拟麦肯锡糖葫芦
2023-02-18 16:27:11 时间
这是麦肯锡系列第六篇,前五篇如下
无论是条形图、折线图、卡片图还是饼图,只是表面样式不同,实际都是占据一块矩形画布空间,并且画布的长宽比不能太离谱。
如果长宽差异很大,图表大概率无法正常阅读:
近日在麦肯锡的APP上看到一种气泡图,像一串糖葫芦,比较适合长宽差异很大的画布空间。下图是在Power BI模拟的示例,业绩排行前三的城市设置了不同颜色。这种图表可以放在左右两侧或者中部,给人以新鲜感。
下方是完整度量值,把度量值放入ImageByCloudScope视觉对象即可正常显示:
糖葫芦 =
//最大圆圈直径100像素
VAR ItemCount =
DISTINCTCOUNT ( '店铺资料'[城市] )
VAR MaxValue =
MAXX ( VALUES ( '店铺资料'[城市] ), [M.销售业绩] )
VAR t1 =
SUMMARIZE (
'店铺资料',
'店铺资料'[城市],
"r", 50 * SQRT ( [M.销售业绩] / MAXVALUE )
)
VAR t2 =
ADDCOLUMNS ( t1,
"cr", SUMX ( FILTER ( t1, [r] >= EARLIER ( [r] ) ), [r] ) ,
"Index", RANKX ( t1, [M.销售业绩] )
)
VAR t3 =
ADDCOLUMNS (
t2,
"Label",
//画标签
"<text x='50' y='" & [cr] * 2 - [r] & "' text-anchor='middle' dominant-baseline='middle' font-family='Segoe UI' font-size='10' >" & [城市] & "</text>",
"Circle",
//画气泡
"<circle cx='50' cy='" & [cr] * 2 - [r] & "' r='" & [r] & "' fill='"
& IF ( [Index] <= 3, "DeepSkyBlue", "LightGrey" ) & "' fill-opacity='1'/>"
)
VAR SVGCode =
CONCATENATEX ( t3, [Circle] & [Label] )
VAR Chart =
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='100' height='"
& MAXX ( t3, [cr] ) * 2 & "'>" & SVGCode & "</svg>"
RETURN
Chart
这个图表的难点在于每个城市的上下间距不同,下方城市需要按照上方城市占据的直径空间动态下移,这也是度量值中t2存在的目的。
当然,糖葫芦没有竹签不合适,下方右侧增加一条线:
把度量值中的维度、指标替换为你模型中的值即可复用。实际应用时,也可在text中加入数据标签。
糖葫芦我还是喜欢吃基本款-山楂且不带任何夹心。
相关文章
- 云原生下基于K8S声明式GitOps持续部署工具ArgoCD实战-上
- 分布式NoSQL数据库MongoDB初体验-v5.0.5
- Linux系列之链接
- Linux系列之压缩命令
- Linux系列之重定向操作
- Linux系列之比较命令
- Linux系列之管理用户环境变量
- Linux系列之进程管理
- Linux系列之文件和目录权限
- Linux系列之添加和删除软件命令
- Linux系列之文本操作命令
- Linux系列之查找命令
- 基础架构之Gitlab Runner
- 基础架构之GitLab
- 基础架构之Mongo
- 为mongodb添加账号
- MongoDB(online) 优化
- Git使用详细教程(二)
- Git使用详细教程(一)
- 带你上手GitHub的Actions功能