zl程序教程

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

当前栏目

Power BI制作动态颜色调试工具

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

在Power BI设置画布背景或者图表背景时,可以手动输入颜色代码,输入的方式有两种,HEX(十六进制)或者RGB(红绿蓝)。

我们可以利用Power BI的参数功能,制作一个动态的调试工具,如下图所示,滑杆或者手动输入RGB的序号,自动生成对应的HEX和RGB编码,卡片图同时变为相应颜色。

1. 颜色编码的含义


RGB和HEX其实是一回事。RGB的三个值分别代表红绿蓝rgb(red, green, blue),每个值的范围是0-255总共256个数值。例如,R为最大值,GB为0,则为纯红色:

HEX颜色编码也是红绿蓝,只不过是十六进制RRGGBB,两位为一个颜色,00是最小值,FF是最大值,00-FF也是256个数字。上图是纯红色,所以前两位是最大值FF,后四位均为0。

2. Power BI设置


首先看RGB方式如何设置参数,在插入选项卡下新建三个参数,分别命名为RGB。

数据类型为整数,数据范围为0-255,增量为1。

新建完成后,会自动添加切片器,且生成以下表格和度量值。

新建一个RGB度量值,引用以上三个参数:

RGB = "rgb(" & [R 值] & "," & [G 值] & "," & [B 值] & ")"

把度量值放入卡片图,显示出颜色名字:

卡片图的背景色选择使用fx,字段同样使用RGB度量值。

此时,滑动滑杆,颜色就可以变化了:

接下来讲解HEX-十六进制的设置方式。在Excel中,十进制转换为十六进制非常简单,DEC2HEX函数即可:

但这个函数没有引入DAX及Power BI,所以需要额外操作。首先,Power Query新建一个空白查询,输入下图中的公式,即可生成0-F的列表。

为这个列表添加一个相同的自定义列,再展开:

展开后得到一个笛卡尔积,总计256行,如下图所示:

把这俩列合并,并添加一个从0开始的索引:

新建十六进制颜色度量值,和三个参数相关联:

HEX = 
VAR RR=LOOKUPVALUE('列表'[编码],'列表'[索引],[R 值])
VAR GG=LOOKUPVALUE('列表'[编码],'列表'[索引],[G 值])
VAR BB=LOOKUPVALUE('列表'[编码],'列表'[索引],[B 值])
RETURN
"#" & RR & GG & BB

把HEX同样放入卡片图字段和背景色,即可实现两种颜色编码方式动态对照: