使用日期时如何在 Altair 中获得选择间隔的初始值?

How to have init values for a selection interval in Altair when using dates?

我正在尝试在 Altair 绘图中为 selection_interval 设置初始值,但一直无法弄清楚。

这是一个代码片段:

df = pd.DataFrame({'date': {0: '2005-03-01', 1: '2005-04-01', 2: '2005-05-02'}, 
                   'values': {0: 89.2506, 1: 109.4073, 2: 120.8222}})

interval = alt.selection_interval(encodings=['x'],init = {'x':['2005-03-01', '2005-04-01']})

alt.Chart(df).mark_line().encode(x =  alt.X('date:T'), y = alt.Y('values')).add_selection(interval)

我希望在绘图初始化时突出显示“2005-03-01”和“2005-04-01”之间的区域。

在此先感谢您的帮助!

Vega-Lite 似乎无法识别和转换 init 参数中的时间戳。您可以通过使用 Pandas 手动将日期转换为时间戳来解决此问题:

x_init = pd.to_datetime(['2005-03-01', '2005-04-01']).astype(int) / 1E6
interval = alt.selection_interval(encodings=['x'], init={'x':list(x_init)})