zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Power BI模拟微信官方新冠疫情条形图

2023-04-18 16:23:13 时间

我们仍然处在新冠疫情期间,生活受到干扰,希望大家和家人都平安。微信提供了详细的信息供我们了解疫情动态。以下是2021年12月某日微信看一看的新增确诊图表,可以学习参考其展示方式。

这个图表有两个特点:条形是渐变的且末尾有人物图标。在这基础上,末尾加个人物图标即可完成对微信图表的模拟。

图标可以在PPT找到,颜色调整为红色,然后用黄老师的工具转换成base64(一键解决PowerBI本地图片显示问题),在网上找个类似的图片链接也可以。

虚拟数据如下:

新建度量值,将人物图标用image标签存放到渐变条形图中:

条形图 = 
VAR ItemCount =
    DISTINCTCOUNT ( '表'[地区] )
VAR MaxValue =
    MAXX ( VALUES ( '表'[地区]), [新增]) 
VAR Color=
"<defs>
<LinearGradient id='w'>
<Stop offset='0%' style='stop-color:Snow'/>
        <Stop offset='100%' style='stop-color:Tomato'/>
</LinearGradient>
</defs>"
VAR BarTable =
    ADDCOLUMNS (
        SUMMARIZE (
            '表',
            '表'[地区],
            "索引", RANKX ( ALLSELECTED ( '表' ),[新增])
        ),
        "Rect",
            "<rect x='20' y='" & ( [索引] - 1 ) * 20 & "' width='" & 100 * [新增] / MaxValue & "' height='12' fill='url(#w)' />",
        "Text",
            "<text x='0' y='"
                & ( [索引] - 1 ) * 20
                    + 8 & "'  text-anchor='start' font-size='6' >" & [地区] & "</text>",
        "Label",
            "<text x='" & 24+100 * [新增] / MaxValue & "' y='"
                & ( [索引] - 1 ) * 20
                    + 8 & "'  text-anchor='start' font-size='6' >"
                &  [新增] & "</text>",
        "image",
            "<image xlink:href='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00LjA5IDEuMDY0YTEuMDkgMS4wNjcgMCAxIDEtMi4xOCAwIDEuMDkgMS4wNjcgMCAwIDEgMi4xOCAwem0xLjg4MyA1LjQ5NGwtLjc2NC0zLjE3NGEuNjMuNjMgMCAwIDAtLjE2NC0uMjkzQTMuMzA4IDMuMzA4IDAgMCAwIDMuOSAyLjUwNGMtLjMtLjA1My0uNi0uMTA2LS45LS4xMDYtLjMgMC0uNi4wNTMtLjkuMTMzLS40MzYuMTA3LS44MTguMzItMS4xNDUuNTg3YS42MzIuNjMyIDAgMCAwLS4xNjQuMjkzTC4wMjcgNi41ODVjMCAuMDI2LS4wMjcuMDgtLjAyNy4xMzMgMCAuMjkzLjI0Ni41MzMuNTQ2LjUzM2EuNTU0LjU1NCAwIDAgMCAuNTE4LS40bC41NzItMi4zMnY3LjQ2N2gxLjA5MXYtNC44aC41NDZ2NC44aDEuMDlWNC41MDRsLjU3MyAyLjMyQS41NDEuNTQxIDAgMCAwIDYgNi42OTFjMC0uMDUzLS4wMjctLjEwNi0uMDI3LS4xMzN6IiBmaWxsPSJ0b21hdG8iIHN0cm9rZT0ic25vdyIgc3Ryb2tlLXdpZHRoPSIuMSIvPjwvc3ZnPg==' x='" & 16.5+100 * [新增] / MaxValue & "' y='"& ( [索引] - 1 ) * 20 & "' height='12' width='6' />"
    )

VAR Bar =
    CONCATENATEX ( BarTable, [Rect] & [Text] & [Label] & [image] )
VAR SVG = 
    "<svg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 141 "& 20*ItemCount & "' >" &
     Color&Bar & "</svg>"
RETURN
    SVG

将度量值放入HTML Content这个视觉对象,设计即完成。

动画演示: