我习惯每次读完书或者看完电影在豆瓣进行打分推荐,如下图红圈所示。豆瓣的评分分为五星,一星表示很差,二星较差,三星还行,四星推荐,五星力荐。

Power BI表格可以直接进行模拟,模拟效果如下图:

准备一份数据源,基础字段是图书名称和推荐指数,推荐指数1代表一星,以此类推。

新建基础度量值图书推荐指数:
图书推荐指数 = SUM('图书列表'[推荐指数])传统的模拟方式为新建一个图表度量值,使用REPT函数按指定次数重复五角星的出现,并在结尾加上推荐力度。
图表 =
REPT ( "★", [图书推荐指数] )
& REPT ( "☆", 5 - [图书推荐指数] )
& SWITCH ( [图书推荐指数], 1, " 很差", 2, " 较差", 3, " 还行", 4, " 推荐", 5, " 力荐" )将度量值拖入表格,即可得到可视化结果。

另外可以使用动态格式功能,无需新建图表度量值,而是将原显示为1-5的图书推荐指数按照指定格式五角星显示。实现过程为将“图书推荐指数”度量值格式设置为动态,格式的内容为上方图表度量值的内容,只是不加等号。

可以看到两种操作方法显示结果是相同的(颜色可在格式设置区域自行调整)。以上两种方式有个共同缺点:不够精细。例如3.5分能不能第四颗星星显示半个?
遇事不决,SVG。
下图是一个示例,请注意非整数的五角星,非常精确的控制了填充量。

SVG度量值如下:
SVG.得分.五角星 =
VAR ScoreAct = [得分]
--实际得分
VAR ScoreFul= 5
--满分多少分
RETURN
"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' id='wujunmin' width='240' height='48'><defs><pattern id='wu1' x='0' y='0' width='48' height='48' patternUnits='userSpaceOnUse'>
<path d='M23.9986 5L17.8856 17.4776L4 19.4911L14.0589 29.3251L11.6544 43L23.9986 36.4192L36.3454 43L33.9586 29.3251L44 19.4911L30.1913 17.4776L23.9986 5Z'fill='gold'stroke='gold'stroke-width='2'stroke-linejoin='round'/></pattern></defs><defs><patternid='wu2'x='0'y='0'width='48'height='48'patternUnits='userSpaceOnUse'><pathd='M23.9986 5L17.8856 17.4776L4 19.4911L14.0589 29.3251L11.6544 43L23.9986 36.4192L36.3454 43L33.9586 29.3251L44 19.4911L30.1913 17.4776L23.9986 5Z'fill='none'stroke='gold'stroke-width='2'stroke-linejoin='round'/></pattern></defs><rectx='0'y='0'width='240'height='48'fill='url(#wu2)'/><rectx='0'y='0'width='" & 240 * ScoreAct / ScoreFul & "'height='48'fill='url(#wu1)'/></svg>"把度量值中的两个VAR替换为你模型的实际值,标记为图像URL后即可拖入表格矩阵使用。
实际上,造型可以是任意图案。

参考资料: