专栏名称: PowerBI战友联盟
微软 Power BI MVP BI佐罗 带你学习BI真经。
51好读  ›  专栏  ›  PowerBI战友联盟

PowerBI 高级技巧:SVG 圆环图实现目标达成动态展示

PowerBI战友联盟  · 公众号  ·  · 2024-12-25 18:41

正文

欢迎关注 【BI佐罗数据分析】 ,今日精华包括:视频案例,技巧干货。
↓ 预约直播,更多干货,不要错过 ↓

在数据分析中,展示实际值与目标值的达成情况并以直观的方式呈现给用户是常见需求。昨天,我们分享了如何通过折线图和堆积柱形图实现目标达成的对比分析,感兴趣的小伙伴可以参考: 高级 PowerBI 目标达成对比分析图表,赶快领取

除了柱形图这种常见的图表外,我们还可以通过 矩阵 结合 SVG 图形 来打造一款表格式的目标达成对比分析。这种方式不仅更加灵活,还能实现独特的视觉效果,例如下图所示的动态进度环图:

在这个矩阵中,我们基于目标达成率动态生成了四种状态的圆环图:

  • 红色 :低于 70%,表示进度不足。

  • 黄色 :70%-90%,表示进度有待提高。

  • 绿色 :90%-100%,表示进度良好。

  • 完成标记 :达成率等于或高于 100%,表示目标已完成。

这种方法看似复杂,但实际上并不难实现。我们为大家准备了一段模板代码,只需简单修改,就可以快速应用到自己的 Power BI 项目中。

这里先解释一下什么是 SVG。SVG(Scalable Vector Graphics)是一种基于 XML 的矢量图形格式,最大的特点是图形可以任意缩放而不会失真。这使得它非常适合在数据可视化中用于动态生成图形,例如进度条、环形图等。此外,SVG 图形的大小通常比位图图形(如 PNG、JPG)更小,加载速度更快。

在 Power BI 中,我们可以通过 DAX 代码 动态生成 SVG 图形,并在视觉对象中展示。这种方法无需使用任何插件或自定义视觉组件,全程仅依赖 Power BI 原生功能即可完成。

以下是核心的 SVG DAX 模板代码。你只需将 [目标完成率] 替换为自己的目标完成率度量值即可。

SvgProgressStatus =
// 修改为自己的目标完成率度量值VAR vMeasure = [目标完成率] 
// 图像大小VAR Width = 64VAR Height = 64 
// 颜色设置VAR RedColor = "#ff0000"VAR YellowColor = "#fedb00"VAR GreenColor = "#8cb400"VAR GreyColor = "#E0E0E0" 
// 图形变量VAR CenterX = 20VAR CenterY = 20VAR Radius = 15VAR StrokeWidth = 4VAR Percentage =    MAX ( ROUNDDOWN ( vMeasure2 ), 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 = 10VAR Circumference =    2 * PI () * RadiusVAR 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






请到「今天看啥」查看全文