欢迎关注
【BI佐罗数据分析】
,今日精华包括:视频案例,技巧干货。
在数据分析中,展示实际值与目标值的达成情况并以直观的方式呈现给用户是常见需求。昨天,我们分享了如何通过折线图和堆积柱形图实现目标达成的对比分析,感兴趣的小伙伴可以参考:
高级 PowerBI 目标达成对比分析图表,赶快领取
除了柱形图这种常见的图表外,我们还可以通过
矩阵
结合
SVG 图形
来打造一款表格式的目标达成对比分析。这种方式不仅更加灵活,还能实现独特的视觉效果,例如下图所示的动态进度环图:
在这个矩阵中,我们基于目标达成率动态生成了四种状态的圆环图:
这种方法看似复杂,但实际上并不难实现。我们为大家准备了一段模板代码,只需简单修改,就可以快速应用到自己的 Power BI 项目中。
这里先解释一下什么是 SVG。SVG(Scalable Vector Graphics)是一种基于 XML 的矢量图形格式,最大的特点是图形可以任意缩放而不会失真。这使得它非常适合在数据可视化中用于动态生成图形,例如进度条、环形图等。此外,SVG 图形的大小通常比位图图形(如 PNG、JPG)更小,加载速度更快。
在 Power BI 中,我们可以通过
DAX 代码
动态生成 SVG 图形,并在视觉对象中展示。这种方法无需使用任何插件或自定义视觉组件,全程仅依赖 Power BI 原生功能即可完成。
以下是核心的 SVG DAX 模板代码。你只需将
[目标完成率]
替换为自己的目标完成率度量值即可。
SvgProgressStatus =
// 修改为自己的目标完成率度量值
VAR vMeasure = [目标完成率]
// 图像大小
VAR Width = 64
VAR Height = 64
// 颜色设置
VAR RedColor = "#ff0000"
VAR YellowColor = "#fedb00"
VAR GreenColor = "#8cb400"
VAR GreyColor = "#E0E0E0"
// 图形变量
VAR CenterX = 20
VAR CenterY = 20
VAR Radius = 15
VAR StrokeWidth = 4
VAR Percentage =
MAX ( ROUNDDOWN ( vMeasure, 2 ), 0 )
// 颜色逻辑设置
VAR StatusColor =
SWITCH (
TRUE (),
Percentage >= 0.9, GreenColor, // >= 90% Green
Percentage >= 0.7, YellowColor, // >= 70% Yellow
RedColor // < 70% Red
)
VAR FontFamily = "Segoe UI"
VAR FontSize = 10
VAR Circumference =
2 * PI () * Radius
VAR DashArray =
FORMAT ( Circumference * Percentage, "0.##" ) & " "
& FORMAT ( Circumference, "0.##" )
VAR DisplayText =
FORMAT ( Percentage * 100, "0" ) & "%25"
VAR ProgressSvg = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='" & Width & "' height='" & Height