Power BI自定义任意迷你图

2021-09-07 14:58:00 浏览数 (2)

前文介绍了如何制作迷你着色地图,本文讲解Power BI中其他迷你图的制作方法。例如:

条形图:表格中条形长度大小表示业绩多少,并且按照业绩规模有颜色变化,下方有数据标签,看上去很像条件格式。

圆:与条形类似,圆的大小随着数据大小而变化。

百分比图:常用来显示占比,例如业绩达成。彩色部分表示达成多少,未达成彩色部分为红色,达成为绿色,灰色部分为未达成比例。

圆和百分比组合下:

以上示例抛砖引玉,均通过DAX修改SVG代码实现,实际上可以发挥你的想象力,迷你图可以是任何样式。

以下给出示例的度量值,注意需要将度量值格式设置为图像URL才可使用。

案例文件下载(复制链接或点击文末左下角阅读原文):

https://mianbaoduo.com/o/bread/YZqWm5py

代码语言:javascript复制
条形图 = 
VAR W1=MAXX(ALL('数据表'),[数据])/100
VAR W2=[数据]/W1
VAR Color=IF([数据]<100,"#B7472A","#217346")
RETURN
"data:image/svg xml;utf8,"&"<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
  <rect width="&"'"&W2&"'"&" height='40'" & " fill="&"'"&Color&"'"&"/>"&"
  <text x='0' y='60' fill='black' text-anchor='left' font-size='20'>"&[数据]&"</text>
</svg> "

圆 = 
VAR W1=MAXX(ALL('数据表'),[数据])/40
VAR W2=[数据]/W1
VAR Color=IF([数据]<100,"#B7472A","#217346")
RETURN
"data:image/svg xml;utf8,"&"<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
  <circle cx='50' cy='50' r="& "'"&W2&"'" &" fill="&"'"&Color&"'"&"/>"&"
  <text x='50' y='50' fill='black' text-anchor='middle' font-size='20'>"&[数据]&"</text>
</svg> "

百分比图 = 
VAR W1=IF([业绩完成率]<0,0,IF([业绩完成率]>1,100,[业绩完成率]*100))
VAR Color=IF([业绩完成率]<1,"#B7472A","#217346")
RETURN
"data:image/svg xml;utf8,"&"<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
  <rect x='0' y='30' width="&"'"&W1&"'"&" height='40'" & " fill="&"'"&Color&"'"&"/>"&"
  <rect x="&"'"&W1&"'"&" y='30' width="&"'"&100-W1&"'"&" height='40'" & " fill='Grey' />"&"
  <text x='0' y='60' fill='black' text-anchor='left' font-size='20'>"&FORMAT([业绩完成率],"Percent")&"</text>
</svg> "

圆和百分比图 = 
VAR W1=IF([业绩完成率]<0,0,IF([业绩完成率]>1,100,[业绩完成率]*100))
VAR Color=IF([业绩完成率]<1,"#B7472A","#217346")
VAR W2=MAXX(ALL('数据表'),[数据])/30
VAR W3=[数据]/W2
RETURN
"data:image/svg xml;utf8,"&"<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
  <circle cx='50' cy='30' r="& "'"&W3&"'" &" fill="&"'"&Color&"'"&"/>"&"
  <text x='50' y='30' fill='black' text-anchor='middle' font-size='20'>"&[数据]&"</text>
  <rect x='0' y='60' width="&"'"&W1&"'"&" height='40'" & " fill="&"'"&Color&"'"&"/>"&"
  <rect x="&"'"&W1&"'"&" y='60' width="&"'"&100-W1&"'"&" height='40'" & " fill='Grey' />"&"
  <text x='0' y='90' fill='black' text-anchor='left' font-size='20'>"&FORMAT([业绩完成率],"Percent")&"</text>
</svg> "

0 人点赞