前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >从子弹图对比Power BI自定义图表的不同方式

从子弹图对比Power BI自定义图表的不同方式

作者头像
wujunmin
发布2025-02-10 17:11:30
发布2025-02-10 17:11:30
12400
代码可运行
举报
文章被收录于专栏:wujunminwujunmin
运行总次数:0
代码可运行

SQLBI前几天出了一篇长文,对子弹图进行了深入的讲解。文章中有一个配图,体现了目前主流(不是全部)的自定义图表方式。借由这篇文章,我们可以对比下不同方式的优劣势。

文章链接:https://www.sqlbi.com/articles/building-bullet-charts-in-power-bi-reports/

我赞同作者的大部分观点,但不是全部。这六种自定义图表方式,从使用难度上来说,我认为

第三方视觉对象<内置视觉对象<DAX+SVG<Deneb=Python/R=JS

有人可能会问,内置视觉对象使用难度比第三方高?如果你仅仅用最基础的功能(比如只用条形图绘制条形图),当然内置视觉对象最容易。但是要把条形图改造成子弹图(或者别的图表),需要一系列技巧,而第三方的子弹图只需要拖拽。

从使用偏好上来说,我倾向于:

内置视觉对象>DAX+SVG>第三方视觉对象>JS>Deneb(Python和R不会,Deneb只略微尝试)

还是子弹图这个例子,内置条形图加各种格式设置可以搞定就不用其他。但是内置视觉对象的格式设置局限性很大,第二考虑SVG这种少量代码的方式,SVG在内置表格矩阵和新卡片图都很容易加载。

其他的自定义图表方式我很少使用,第三方视觉对象要么冗余要么不足,冗余指有一堆用不上的功能,不足指不能完全符合需要,而且影响报表速度。JS、Deneb、Python、R普遍代码很长,学习起来让人望而却步。

最后,我们跳出SQLBI的文章,使用第七种方式DAX+HTML自定义一个子弹图,度量值如下:

代码语言:javascript
代码运行次数:0
复制
M.P.子弹图 = 
VAR _Taget = [M.销售目标]
VAR _Actual = [M.销售业绩]
VAR _Label = SELECTEDVALUE ( '店铺资料'[城市] ) & " " & FORMAT ( [M.业绩达成率], "0%" )
VAR MaxValue =
    MAXX ({
            MAXX ( ALLSELECTED ( '店铺资料'[城市] ), [M.销售业绩] ),
            MAXX ( ALLSELECTED ( '店铺资料'[城市] ), [M.销售目标] )},
        [Value]
    )
RETURN
"<p style='width:300px;white-space:nowrap;display:flex;align-items:center; '>
<span style='font-size:30px;display inline-block;background:rgba(21,21,21,0.1);width:" & _Taget / MaxValue * 300 & "px;'>&nbsp;</span><span style='font-size:20px;position:absolute;left:0;display:inline-block;background:deepskyblue; width:" & _Actual / MaxValue * 300 & "px;'>"& _Label & "</span><p>"

把RETURN前面的数据替换为你模型中对应的维度和指标,放入HTML Content视觉对象,得到:

仅仅十几行度量值,有时候技术并不复杂,就是需要一点脑洞。

注1:本文提到的第三方视觉对象均指单一功能视觉对象(比如表格、子弹图、折线图等),不包含自主扩展式视觉对象(Deneb可以自主扩展,众多支持HTML、SVG、JS的视觉对象也可以自主扩展)

注2:本文的观点具有个人认知的局限性,熟悉Python但是不熟悉HTML、Vega的读者可能偏好完全不同。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 wujunmin 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档