Power BI内置了若干条件格式图标,但是没有任何一个可以用作气泡图,因为无法改变大小。
以下给出6个自定义气泡图标度量值,供读者使用,原理是将UNICODE用SVG矢量图包装。图标选取的时候其实可以是任意UNICODE符号,但是建议选择圆形或者方形。
使用方法非常简单,复制下方的度量值到你的模型,将度量值中的[增长率]替换为你的指标。调整完后,在表格矩阵如下图将你的指标的条件格式图标对应为刚才复制的图标度量值,也可将图标度量值标记为图像URL直接放到表格。
1. 实心圆
气泡-实心圆 =
VAR MAXR =
MAXX ( ALLSELECTED('店铺信息'[店铺名称]), ABS([增长率]))
VAR CHART =
"data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text x='50' y='50' text-anchor='middle' dominant-baseline='middle' font-size='"
& 170 * ABS([增长率]) / MAXR & "' fill='"
& IF ( [增长率] >= 0, "DarkCyan", "Tomato" ) & "'>" &
UNICHAR(9679) & "
</text>
</svg> "
RETURN
CHART
2. 空心圆
气泡-空心圆 =
VAR MAXR =
MAXX ( ALLSELECTED('店铺信息'[店铺名称]), ABS([增长率]))
VAR CHART =
"data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text x='50' y='50' text-anchor='middle' dominant-baseline='middle' font-size='"
& 100 * ABS([增长率]) / MAXR & "' fill='"
& IF ( [增长率] >= 0, "DarkCyan", "Tomato" ) & "'>" &
UNICHAR(8413) & "
</text>
</svg> "
RETURN
CHART
3. 五角星
气泡-五角星 =
VAR MAXR =
MAXX ( ALLSELECTED('店铺信息'[店铺名称]), ABS([增长率]))
VAR CHART =
"data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text x='50' y='50' text-anchor='middle' dominant-baseline='middle' font-size='"
& 100 * ABS([增长率]) / MAXR & "' fill='"
& IF ( [增长率] >= 0, "DarkCyan", "Tomato" ) & "'>" &
UNICHAR ( 10026 ) & "
</text>
</svg> "
RETURN
CHART
4. 实心正方形
气泡-实心正方形 =
VAR MaxValue =
MAXX ( ALLSELECTED('店铺信息'[店铺名称]), ABS([增长率]))
VAR CHART =
"data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text x='50' y='50' text-anchor='middle' dominant-baseline='middle' font-size='"
& 100 * ABS([增长率]) /MaxValue & "' fill='"
& IF ( [增长率] >= 0, "DarkCyan", "Tomato" ) & "'>" &
UNICHAR( 9724 ) & "
</text>
</svg> "
RETURN
CHART
5. 十六宫格
气泡-16格子正方形 =
VAR MaxValue =
MAXX ( ALLSELECTED('店铺信息'[店铺名称]), ABS([增长率]))
VAR CHART =
"data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text x='50' y='50' text-anchor='middle' dominant-baseline='middle' font-size='"
& 100 * ABS([增长率]) /MaxValue & "' fill='"
& IF ( [增长率] >= 0, "DarkCyan", "Tomato" ) & "'>" &
UNICHAR( 9638 ) & "
</text>
</svg> "
RETURN
CHART
6. 菱形
气泡-菱形 =
VAR MaxValue =
MAXX ( ALLSELECTED('店铺信息'[店铺名称]), ABS([增长率]))
VAR CHART =
"data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text x='50' y='50' text-anchor='middle' dominant-baseline='middle' font-size='"
& 100 * ABS([增长率]) /MaxValue & "' fill='"
& IF ( [增长率] >= 0, "DarkCyan", "Tomato" ) & "'>" &
UNICHAR( 8415 ) & "
</text>
</svg> "
RETURN
CHART