小伙伴们,大家好!今天继续和大家分享Power BI数据可视化相关内容。本期要介绍的是如何在Power BI中呈现数据完成率,通常来说我们会使用仪表、进度条或者圆环图来实现,今天和大家分享的是通过SVG的形式来做一个酷炫的完成率圆环图。由于SVG制图须要了解这个语言的基础,大家有兴趣可以去搜索相关的基础内容,本次分享只对其中需要进行调整的地方进行说明。
完成率 =
VAR fill = [vs.Target]*100
VAR text_show = FORMAT(fill/100,"#.0%")
VAR zhouchang = 2 * PI() * 50
//圆的周长:50是周长
VAR fill_value = (zhouchang*fill)/100
//完成率的填充
VAR gap_value = zhouchang-fill_value
//gap的长度
VAR svg_url = "data:image/svg+xml;utf8,"
VAR svg_start = "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 150'>"
VAR svg_data =
"
<defs>
<linearGradient id='gradient' x1='0%' y1='0%' x2='100%' y2='0%'>
<stop offset='0%' style='stop-color: #f04393' />
<stop offset='100%' style='stop-color: #f9c449' />
</linearGradient>
<style>
#backgroundCircle {
fill: none;
stroke: #f7f3f3;
stroke-width: 15;
}
#fillCircle {
fill: none;
stroke: url(#gradient);
stroke-width: 15;
stroke-dasharray: "& fill_value &" , "& gap_value &";
transform: rotate(-90deg);
transform-origin: center;
stroke-linecap: round;
}
#text {
font-family: Segoe UI;
font-size: 1.1em;
text-anchor: middle;
fill: #666;
}
</style>
</defs>
<circle id='backgroundCircle' cx='75' cy='75' r='50' />
<circle id='fillCircle' cx='75' cy='75' r='50' />
<text id='text' x='75' y='75' > "& text_show &" </text>
"
VAR svg_end = "</svg>"
RETURN
svg_url & svg_start & svg_data & svg_end
关键点说明:
变量定义:
fill 计算目标完成率的百分比。
text_show 将百分比格式化为字符串。
zhouchang 计算圆的周长,半径为 50。
fill_value和 gap_value 分别计算填充部分和空白部分的长度。
SVG 数据:
<defs>
标签内定义了一个线性渐变#gradient
。<style>
标签内定义了背景圆和填充圆的样式,以及文本的样式。#backgroundCircle
是背景圆,颜色为浅灰色。#fillCircle
是填充圆,使用渐变色填充,通过stroke-dasharray
控制填充长度。#text
是显示完成率的文本,居中显示在圆的中间。
返回值:
最终返回一个完整的 SVG 数据 URL,可以直接矩阵中呈现
设置矩阵的图像大小
源文件和教学视频已加入Power BI系统课程,需要学习可以私下小编
免费课程:Power BI免费课程更新至202405月 免费课程绝大部分都是录制视频讲解,针对典型案例进行讲解,大家可以当做是一个字典,需要时候来找一找。免费课程不系统,有些基础内容小编默认你是知道,所以没有详细讲解,需要系统学习推荐看看小编的付费系统课程。 付费课程:Power BI会员课程更新(202310) 付费课程从零基础开始讲解,上手平滑,深入浅出,结合实际案例针对性强。具体可以参考介绍,课程内容持续更新,永久学习!(付费后,小编后面开发推出的所有课程和资源免费获取,无需再付费!) 交流答疑群:本群为付费制(49/一位),仅作为学习交流Power BI/Excel/Tableau/SQL等数据分析、数据处理工具用,有问题可以描述清楚你的问题,附上案例数据求助。除此外,不讨论任何无关事情,违者立刻剔除。啊?不是吧?加群还要付费?嗯,是的,所以,加群后请谨言慎行!群里会不定期分享各类模板、学习书籍等资讯,确认以上条件都能接受再添加小编私信!