2021年12月更新的Power BI版本新增了迷你图功能,如下图在表格或矩阵中点击下拉箭头或鼠标右键,即可进入设置界面:
可以生成两种图表样式,折线图或柱形图:
折线图可以设置显示标记,比方同时显示最高值和最低值:
显示效果如下:
切换为柱形图,效果如下:
迷你折线图个人认为已经能够满足绝大部分使用需求,但是迷你柱形图的功能很单薄,切换为柱形图后,没有像折线图那样的标记设置。
内置不足,DAX来补。使用DAX可以自定义添加标记的迷你柱形图,比如标记最高值和最低值:
度量值如下,将该度量值标记为图像URL,拖入表格或矩阵即可:
代码语言:javascript复制自定义迷你柱形图 =
VAR MaxValue =
MAXX ( VALUES ( '表'[月]), [指标])
VAR MinValue=
MINX ( VALUES ( '表'[月]), [指标])
VAR Max_Width=
IF(MinValue<0,IF(MaxValue<0, ABS(MinValue),MaxValue-MinValue),MaxValue)
VAR BarTable=
ADDCOLUMNS(
SUMMARIZE('表','表'[年],'表'[月],
"Color",IF([指标]=MaxValue,"Green",IF([指标]=MinValue,"Red","Grey"))),//颜色自定义
"Rect", "<rect x='"&IF(MinValue>0,0, IF(MaxValue>0, IF([指标]<0,120-120*(MaxValue-[指标])/Max_Width,120*ABS(MinValue)/Max_Width),120-120*ABS([指标])/Max_Width)) &"' y='" & ( [月] - 1 ) * 10 & "' width='" & 120*ABS([指标]) / Max_Width & "' height='9' fill='" & [Color] & " '/>")
Return
"data:image/svg xml;utf8,"&"
<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120' > <g transform='rotate(-90,60,60)'>"&
CONCATENATEX(BarTable,[Rect])&"</g>
</svg> "
该方案非常灵活,条件格式可以如注释处任意自定义。图表也可以旋转,将rotate的第一个参数变为0,迷你柱形图变为条形图:
造型也可以自定义,比方变为大头针:
该度量值的月份相当于是一个索引,如读者的X轴是别的字段,需要自建索引。