2023年春节假日期间,人民出行意愿空前高涨,热门目的地酒店价格飙升。很多人可能使用携程预订酒店,下图是该平台的价格日历,日历注明了所选酒店每天的价格,且低价时段在日历下方进行颜色标识,日历上方同时注明了节日。这个日历怎么在Power BI实现呢?
日历的构成非常简单,均为文本,Power BI日期度量值中使用UNICHAR(10)也可以很方便的进行文本换行。比较困难的是同一个文本需要不同的颜色。这种样式无法使用内置的条件格式实现。我的实现方式是SVG矢量图的text标签(text在Power BI使用的视频教程:https://t.zsxq.com/0aAblJCfG)。
以下是Power BI的实现效果:
图表度量值如下:
模拟携程日历 =
VAR Color =
IF (
SELECTEDVALUE ( '日期表'[价格] ) = MINX ( ALLSELECTED ( '日期表' ), '日期表'[价格] ),
"Red",
"Black"
)
VAR Chart ="
data:image/svg+xml;utf8," & "
<svg xmlns='http://www.w3.org/2000/svg' height='100' width='100'>
<text text-anchor='middle'>
<tspan x='50' y='65' font-size='30'>"
& SELECTEDVALUE ( '日期表'[日] ) & "
</tspan>
<tspan x='50' y='35' font-size='15'>"
& SELECTEDVALUE ( '日期表'[节日] ) & "
</tspan>
<tspan x='50' y='80' font-size='15' fill='" & Color & "'>¥"
& SELECTEDVALUE ( '日期表'[价格] ) & "
</tspan>
<tspan x='50' y='95' font-size='15' fill='" & Color & "'>"
& IF ( Color = "Red", "低价" ) & "
</tspan>
</text>
</svg> "
RETURN
Chart
把度量值标记为图像URL,拖入矩阵: