《Power BI卡片图添加趋势图》介绍了如何在卡片图添加折线趋势,《Power BI 卡片图添加动画折线趋势》介绍了如何添加折线出场动画
图表度量值如下,度量值中的日期、指标替换为自己模型对应的数据可复用。
折线首尾标记=
VAR XMinDate =
MIN ( '日期表'[Date] )
VAR XMaxDate =
MAX ( '日期表'[Date] )
VAR MaxWidth = 300
VAR MaxHeight = 80
VAR Space_X = MaxWidth * 0.1
VAR Space_Y = MaxHeight * 0.1
VAR Mark_r = MaxWidth / 60
VAR Line_stroke = MaxWidth / 100
VAR YMinValue =
MINX ( ALLSELECTED ( '日期表'[Date] ), [指标] )
VAR YMaxValue =
MAXX ( ALLSELECTED ( '日期表'[Date] ), [指标] )
VAR SVG_Table =
ADDCOLUMNS (
'日期表',
"X",
MaxWidth
* DIVIDE ( [Date] - XMinDate, XMaxDate - XMinDate ),
"Y",
MaxHeight
* DIVIDE ( [指标] - YMinValue, YMaxValue - YMinValue ),
"MarkColor",
IF (
[Date] = XMinDate,
"Tomato",
IF ( [Date] = XMaxDate, "DarkCyan", BLANK () )
)
)
VAR Lines =
CONCATENATEX ( SVG_Table, [X] & "," & MaxHeight - [Y], " ", [Date] )
VAR Marks =
CONCATENATEX (
FILTER ( SVG_Table, [MarkColor] <> BLANK () ),
"<circle cx='" & [X] & "' cy='" & MaxHeight - [Y] & "' r='" & Mark_r & "' fill='" & [MarkColor] & "'/>"
)
VAR SVG = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' x='0' y='0' width='" & MaxWidth & "' height='" & MaxHeight & "' viewBox='" & - Space_X & " " & - Space_Y & " " & MaxWidth + Space_X * 2 & " " & MaxHeight + Space_Y * 2 & "'><!--微信公众号、知乎:wujunmin--><polyline fill='none' stroke='LightGrey' stroke-width='" & Line_stroke & "' points='" & Lines & "'/>" & Marks & "</svg>"
RETURN
SVG
使用时把上方度量值放入新卡片图的图像URL,也可放入表格矩阵。
效果如下图,当然你也可以选择仅显示开始标记或者结尾标记,把上面IF语句简化下即可,颜色也可自行替换。
更丰富的效果仅在知识星球分享,例如带有箭头,箭头的方向随数据变化:
例如虚线: