Power BI按天气切换页面背景

2022-07-13 15:56:29 浏览数 (1)

很多行业受天气影响,Power BI的页面背景可以使用一个简单的技巧进行切换,如下方动画下雨和晴天的切换:

  1. 找背景图片

在pixabay搜索下雨相关的照片,该图库的资源完全免费,可以商用,并提供JPG、PNG多种尺寸及SVG格式的下载。

该网站也支持中文搜索,搜索“雨”,如果你的报告比较简约、淡雅,推荐搜索矢量图或者插画,这样搜索出来的结果比较朴素。

以下是本文选用的下雨照片,无背景雨滴:

https://pixabay.com/zh/illustrations/rain-rain-drops-water-waterdrop-1162425/

将照片放入Power BI画布背景,透明度调高一点,以防对图表造成视觉干扰。

2. 设置动态切换背景


此时读者可能想到,如果上图中透明度可以使用函数自定义,事情会方便很多。

代码语言:javascript复制
透明度 = IF(SELECTEDVALUE('日期表'[天气])="雨",0.7,1)

如果当天下雨,使得背景图片可见,如果不下雨,透明度设置为100%,即背景图片不可见:

很遗憾,Power BI目前(2022年6月)不支持这样的自定义透明度设置,因此,需要采取一种迂回的方式。插入一个矩形的框,去掉边框、填充。将矩形大小和画布大小设置为一致。

将矩形放到最底层:

此时,可以通过函数动态调整矩形的背景色,使得下雨背景图片显示或者被遮挡:

颜色控制度量值如下:

代码语言:javascript复制
普通背景框颜色 = IF(SELECTEDVALUE('日期表'[天气])="雨","#00FFFFFF","#FFFFFF")

当下雨时,矩形颜色代码最前方加上00表示完全透明,否则不透明。

以上即完成了整个设置:

另外一种方案是SVG画一个矩形,利用填充功能,动态填充矩形的颜色。这种方案比内置矩形复杂,因此不推荐。以下给出自定义矩形的度量值,有兴趣的读者可以研究:

代码语言:javascript复制
SVG背景框颜色 = "data:image/svg xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
    <g><title>公众号、知乎、B站:wujunmin</title>
        <rect x='0' y='0' width='100' height='100' fill='"&
            IF(SELECTEDVALUE('日期表'[天气])="雨","none","White") & "'
        />
    </g>
</svg> "

可能有读者会问,如何获取天气信息?参考此文:

Power BI/Excel网抓:获取实时天气数据


svg

0 人点赞