PowerBI实战-制作精美的KPI卡片图
教你在powerbi中用【卡片图(新)】这一工具制作精美的KPI卡片图,有关如何在卡片图中插入图片文件,以及如何将折线图插入到卡片图中。
一、引言
在上一篇的教学中,我们为大家展示了如何在powerbi里制作简易的KPI卡片图,大家如果感兴趣可以翻我上一篇的内容,今天的教程是上一篇的进阶版

在上一篇教大家制作的卡片图中,我们已经展示出了与KPI相关的数据,但是仅仅是这样的布局肯定略显单调,那么今天就教大家如何对这一KPI卡片图进行美化,like this~

今天教程主要以美化为主,相关数据及度量值均与上一篇内容相同,那我们就开始吧
二、具体教学
首先,今天要用到的可视化工具为【卡片(新)】,它在原有【卡片图】的基础上新增加了一些自定义功能,让我们能更方便按自己的想法来设计卡片。

还是过一下我们的数据和已经创建好的度量值

度量值:

【Total Sales】:
Total Sales = sum(overview[Sales])
【Total Sales-Budget】:
Total Sales-Budget =
var gap = [Total Sales]-[Total Budget]
var percentage = divide([Total Sales],[Total Budget])-1
var sign = if(gap>0,"+","")
return sign & format(percentage,"#0.0%") & " | " & sign & format(gap,"#0,#")
1、单列卡片图制作

首先将我们创建好的三个度量值【Total Sales】、【Total Budget】、【Total Target】都拖入到【卡片(新)】的【数据】区域中,【布局】按【单列】排列:

得到:

随后,在【卡】下面,调整形状为【圆角矩形】,【圆角】设为10

关掉【边框】,打开【阴影】、【发光】和【强调栏】

改一下显示字体并在【发光】和【强调栏】中调整自己喜欢的颜色

接下来在网上找几个相关的图片文件(png):

分别对三个【数据系列】中,在【图像】下【浏览】处添加刚刚下载好的图片文件

放到【文本左侧】,调整大小

随后,我们的单列卡片图就制作完成了:

2、单个KPI数据卡片图制作

在刚刚制作的基础上,我们只保留【Total Sales】这一个
打开【引用标签】,将之前创建的度量值【Total Sales-Budget】拖进去

再将【详细信息】打开,把【Total Budget】拖进去

简单修改一下字体展示,效果如下:

如果还想再插入一些其他的【引用标签】操作同样像上面一样
3、向单个KPI卡片图插入折线图

想往卡片图中插入折线图,这就又用到了我们前几篇所提到的SVG代码的方法了,我这边已经把代码给大家准备好了,代码部分借鉴了国外大佬Kerry的思路。
创建度量值,并将度量值设为【图像URL】的数据类型(荧光标出部分为自定义修改部分)
Sparkline =
// Static line color - use %23 instead of # for Firefox compatibility (Measure Derived from Eldersveld Modified by Kolosko)
VAR LineColour = "%23118DFF"
VAR PointColour = "white"
VAR Defs = "<defs>
<linearGradient id='grad' x1='0' y1='25' x2='0' y2='50' gradientUnits='userSpaceOnUse'>
<stop stop-color='#118DFF' offset='0' />
<stop stop-color='#118DFF' offset='0.3' />
<stop stop-color='white' offset='1' />
</linearGradient>
</defs>"
// "Date" field used in this example along the X axis
VAR XMinDate = MIN('overview'[Dates])
VAR XMaxDate = MAX('overview'[Dates])
// Obtain overall min and overall max measure values when evaluated for each date
VAR YMinValue = MINX(Values('overview'[Dates]),CALCULATE([Total Sales]))
VAR YMaxValue = MAXX(Values('overview'[Dates]),CALCULATE([Total Sales]))
// Build table of X & Y coordinates and fit to 50 x 150 viewbox
VAR SparklineTable = ADDCOLUMNS(
SUMMARIZE('overview','overview'[Dates]),
"X",INT(150 * DIVIDE('overview'[Dates] - XMinDate, XMaxDate - XMinDate)),
"Y",INT(50 * DIVIDE('Measure Storage'[Total Sales] - YMinValue,YMaxValue - YMinValue)))
// Concatenate X & Y coordinates to build the sparkline
VAR Lines = CONCATENATEX(SparklineTable,[X] & "," & 50-[Y]," ", 'overview'[Dates])
// Last data points on the line
VAR LastSparkYValue = MAXX( FILTER(SparklineTable, 'overview'[Dates] = XMaxDate), [Y])
VAR LastSparkXValue = MAXX( FILTER(SparklineTable, 'overview'[Dates] = XMaxDate), [X])
// Add to SVG, and verify Data Category is set to Image URL for this measure
VAR SVGImageURL =
"data:image/svg+xml;utf8," &
--- gradient---
"<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='-7 -7 164 64'>" & Defs &
"<polyline fill='url(#grad)' fill-opacity='0.3' stroke='transparent'
stroke-width='0' points=' 0 50 " & Lines &
" 150 150 Z '/>" &
--- Lines---
"<polyline
fill='transparent' stroke='" & LineColour & "'
stroke-linecap='round' stroke-linejoin='round'
stroke-width='3' points=' " & Lines &
" '/>" &
--- Last Point---
"<circle cx='"& LastSparkXValue & "' cy='" & 50 - LastSparkYValue & "' r='4' stroke='" & LineColour & "' stroke-width='3' fill='" & PointColour & "' />" &
"</svg>"
RETURN SVGImageURL
然后在这里插入刚刚创建的图像度量值:

位置放到【文本右侧】然后调整大小

效果展示:

好的那么我们今天的KPI卡片图的美化教程就到此结束了,希望对大家有所帮助,后续我还会为大家分享更多有关powerbi的小技巧,我们下篇再见~
更多推荐


所有评论(0)