很多行业受天气影响,Power BI的页面背景可以使用一个简单的技巧进行切换,如下方动画下雨和晴天的切换:
- 找背景图片
在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网抓:获取实时天气数据