气泡图是一种万能图表,凡是比较大小的指标都可以用气泡图展示。Power BI表格矩阵的条件格式图标、值,按钮切片器的图像区域均可以插入SVG矢量图制作的气泡图。

SVG代码有一点点学习成本(参考Power BI SVG制图入门知识2025版)。我把气泡图封装成了一个自定义函数(UDF,介绍Power BI DAX自定义函数封装图表:开篇),用户可以不接触SVG的情况下直接使用该图表。
函数名称叫SVGBubble,参数有三个:
SVGBubble(
需要比较大小的维度列, 需要比较大小的指标, 颜色 )
其中颜色支持英文颜色名称和RGB。举两个应用场景。如果需要比较不同门店的业绩,新建度量值,引用气泡函数:
业绩大小气泡 =
SVGBubble(
'店铺资料'[店铺名称],
[M.销售业绩],
"Deepskyblue"
)
如提示下划线错误无需理会,这是Power BI 小bug。把以上度量值放入表格条件格式图标:

维度换成城市:
SVG.气泡图.城市 =
SVGBubble(
'店铺资料'[城市],
[M.销售业绩],
"Deepskyblue"
)
度量值放入按钮切片器图像区域:

业绩是正数,如果指标还存在负数(如增长率),新建气泡度量值:
气泡度量值 =
SVGBubble(
'店铺资料'[店铺名称],
[M.增长率],
IF([M.增长率]>=0,"green","red")
)
放入表格条件格式图标,得到:

那么,气泡函数如何放入你的模型?
首先,将Power BI Desktop升级到2025年9月的版本,安装包地址:
https://www.microsoft.com/zh-cn/download/details.aspx?id=58494
打开文件-选项和设置-选项-预览功能,勾选”DAX用户自定义函数“:

切换到DAX查询视图,粘贴代码,点击右上角的使用更改更新模型即生效。

DEFINE
FUNCTION SVGBubble =
--功能:表格矩阵、按钮切片器气泡图
--参数:维度、指标、颜色(支持英文颜色名称、RGB)
(ColumnForBubble:anyref,MeasureForBubble:numeric expr,Color:string)=>
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' id='wujunmin' width='200' height='200'>
<circle cx='100' cy='100' r='" & 100 * SQRT ( ABS ( MeasureForBubble ) / MAXX ( ALLSELECTED ( ColumnForBubble ), ABS ( MeasureForBubble ) ) ) & "' fill='" & Color & "'/>
</svg>"
前期分享的其他DAX自定义图表函数: