zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Power BI 模拟麦肯锡华夫饼图

2023-02-18 16:27:14 时间

这是麦肯锡系列第三篇,前两篇如下

Power BI模拟麦肯锡客流转化漏斗图

Power BI模拟麦肯锡多种正方形图表

麦肯锡的华夫饼图如下所示,常用来显示百分比,下图是McKinsey Insights APP的示例:

Power BI模拟效果如下:

图表使用嵌套SVG矢量图的度量值生成,度量值如下,放入ImageByCloudScope视觉对象或者表格、矩阵可以正常显示。

麦肯锡_华夫饼图 =
VAR t =
    GENERATESERIES ( 1, 10 ) //1-10的序列
VAR tPlus =
    GENERATE ( SELECTCOLUMNS ( t, "Value1", [Value] ), t ) //笛卡尔集
VAR tPlusPlus =
    ADDCOLUMNS ( tPlus, "Index", RANKX ( tPlus, [Value] + [Value1] / 100,, ASC ) ) //生成1-100的序号
VAR tWaffle =
    ADDCOLUMNS (
        tPlusPlus,
        "circle",
            "<circle cx='" & [Value] * 10 + 15 & "' cy='" & [Value1] * 10 + 15 & "' r='4' fill='"
                & IF ( [Index] <= ROUND ( [业绩达成率] * 100, 0 ), "Black", "LightGrey" ) & "' />"
    ) //生成100个圆
VAR Chart =
    "data:image/svg+xml;utf8," & "
    <svg xmlns='http://www.w3.org/2000/svg' width='150' height='150'>" & "
        <g transform='rotate(-90,75,75)'>"
            & CONCATENATEX ( tWaffle, [circle] ) & "
        </g>
    <!-- 数据标签-->
        <text x='70' y='20' font-size='15' text-anchor='middle' >"
            & ROUND ( [业绩达成率] * 100, 0 ) & "</text>
        <text x='70' y='148' font-size='15' text-anchor='middle' >"
            & SELECTEDVALUE ( '业绩表'[店铺] ) & "</text>
    </svg> "
RETURN
    IF ( HASONEVALUE ( '业绩表'[店铺] ), Chart, BLANK () )

如果想要繁复一点,圆圈还可以加内容:

前期介绍过任意图案的华夫饼图,可以参考下文:

Power BI自定义业绩达成华夫饼图

也介绍过如何在Excel实现:

分享一个Excel华夫饼图模板

后续还有麦肯锡系列的其他文章,敬请期待。