Power BI新式卡片图性能与美观兼得

微软在2023.6月的的更新中,更新了很多所谓炸裂的功能,但是像Fabric国内目前还用不到,非后台开发人员也极少用到API,就连源代码保存的PBIP文件也要依赖于Fabrci服务,那六月的更新,还剩些啥?Power BI June 2023 Feature Summary | Microsoft Power BI 博客 | Microsoft Power BI — Power BI 2023 年 6 月功能摘要 | Microsoft Power BI 博客 | Microsoft Power BI
新式卡片图,这也是本月更新中最吸引我的功能,微软开始弥补自家视觉对象美观上的不足了。先来看下国外网友使用新式卡片图制作的效果,简直一点儿也不微软风。
image.png

性能提升

在Power BI中视觉对象越多,查询和计算也就会越多,性能相对也就越差,而多数时候同一个页面可能会存在大量的视觉对象,最常见的就是存在十几甚至二十几个卡片图,这样报表加载就会需要很长时间,SQLBI早在2020年的博客中也提出了多个卡片图对报表性能的影响,具体可查看Optimizing card visuals in slow Power BI reports – SQLBI — 在缓慢的 Power BI 报告中优化卡片视觉效果 – SQLBI
文中SQLBI是建议使用OKVIZ的卡片图,OKVIZ系的图表确实都很不错,但收费。。。后来Zebra BI也出了卡片图,这也是我最喜欢的第三方图表,额,还是收费。但是,现在,可以直接使用微软自家的新式卡片图了。
Zebra BI Cards – A unified view of your business performance in Power BI — Zebra BI Cards – Power BI 中业务绩效的统一视图

美化提升

对于建模人员可能更关注的是性能,但是对于业务用户,更关心的就是美化了。在新式卡片图之前如果想美化,通常是做好背景图,然后页面整体插入背景。而现在,可以直接卡片图填充属性下添加背景了,并且可以分开设置不同指标的背景
image.png
当然,除了添加背景,也可以添加强调栏,还可以设置空值的显示,只不过目前空值也是不支持中文的,同样的5月份更新的数据标签中的自定义标签也是不支持中文的。
image.png
更多的基础属性可见官方文档New card visual | Public preview | Microsoft Power BI Blog | Microsoft Power BI — 新卡片视觉 |公开预览 | Microsoft Power BI 博客 |微软 Power BI
这里要着重介绍的是图像URL,这就增加了更的可能性。这里参考了Lollipop Sparkline – EXPLORATIONS IN DATA STORYTELLING WITH POWER BI — Lollipop Sparkline – 使用 POWER BI 探索数据故事 (kerrykolosko.com)
这里对原代码进行了简单的修改,替换了日期维度为年月,指标为销售额 ,之后只要在图像url中选择该度量即可

Sparkline Points =

// Static line color - use %23 instead of # for Firefox compatibility (Measure Derived from Eldersveld Modified by Kolosko)

VAR LineColour = "%23118DFF"
VAR PointColour = "white"

// "Date" field used in this example along the X axis

VAR XMinDate = MIN('DimDate'[YearMonth])
VAR XMaxDate = MAX('DimDate'[YearMonth])

// Obtain overall min and overall max measure values when evaluated for each date

VAR YMinValue = MINX(Values('DimDate'[YearMonth]),CALCULATE([销售额]))
VAR YMaxValue = MAXX(Values('DimDate'[YearMonth]),CALCULATE([销售额]))

// Build table of X & Y coordinates and fit to 50 x 150 viewbox

VAR SparklineTable = ADDCOLUMNS(
    SUMMARIZE('FactInternetSales','DimDate'[YearMonth]),
        "X",INT(150 * DIVIDE('DimDate'[YearMonth] - XMinDate, XMaxDate - XMinDate)),
        "Y",INT(50 * DIVIDE([销售额] - YMinValue,YMaxValue - YMinValue)))

// Concatenate X & Y coordinates to build the sparkline

VAR Lines = CONCATENATEX(SparklineTable,[X] & "," & 50-[Y]," ", 'DimDate'[YearMonth])
VAR PointTable=
    ADDCOLUMNS(
        SUMMARIZE('FactInternetSales','DimDate'[YearMonth]),
            "@Colour",IF([销售额]=YMaxValue,"Green",IF([销售额]=YMinValue,"Red",LineColour)),
&nbsp; &nbsp; &nbsp; &nbsp; "@Points", "<circle cx='"&INT(150 * DIVIDE('DimDate'[YearMonth] - XMinDate, XMaxDate - XMinDate))&"' cy='" & 50 - &nbsp;INT(50 * DIVIDE([销售额] - YMinValue,YMaxValue - YMinValue)) & "' r='3' stroke='"&LineColour&"' stroke-width='1' &nbsp;fill='"&LineColour&"'/>")

// Last data points on the line

VAR LastSparkYValue = MAXX( FILTER(SparklineTable, 'DimDate'[YearMonth] = XMaxDate), [Y])
VAR LastSparkXValue = MAXX( FILTER(SparklineTable, 'DimDate'[YearMonth] = XMaxDate), [X])


// Add to SVG, and verify Data Category is set to Image URL for this measure
VAR SVGImageURL =
&nbsp; &nbsp; "data:image/svg+xml;utf8," &
&nbsp; &nbsp; --- gradient---
&nbsp; &nbsp; "<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='-7 -7 164 64'>" &
&nbsp; &nbsp; --- Lines---
&nbsp; &nbsp; "<polyline
&nbsp; &nbsp; &nbsp; &nbsp; fill='transparent' stroke='" & LineColour & "'
&nbsp; &nbsp; &nbsp; &nbsp; stroke-linecap='round' stroke-linejoin='round'
&nbsp; &nbsp; &nbsp; &nbsp; stroke-width='2' points=' " & Lines &
&nbsp; &nbsp; &nbsp; " '/>" &
&nbsp; &nbsp; --- Last Point---
&nbsp; &nbsp; &nbsp; &nbsp; CONCATENATEX(PointTable,[@Points]) &
&nbsp; &nbsp; &nbsp; &nbsp; "<circle cx='"& LastSparkXValue & "' cy='" & 50 - LastSparkYValue & "' r='4' stroke='" & LineColour & "' stroke-width='3' fill='" & PointColour & "' />" &
&nbsp; &nbsp; &nbsp; &nbsp; "</svg>"
RETURN SVGImageURL
image.png

未来规划

目前来看新式卡片已经很好用了,但这还不是全部,这只是开发规划中的一部分而已,未来微软还会加入更多的功能
image.png
如果想了解更多,也可查看官方的视频 ,视频中介绍也更多未来微软将要加入的改变
image.png
也可访问Wolai笔记区查看原视频https://www.wolai.com/muxiaoqi/tioUQnQMZjkiQ2LABC9j15

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注