Вот хак, чтобы получить в основном сюжет, который я искал:
import altair as alt
import numpy as np
import pandas as pd
x = np.linspace(0,1)
y = x**2
c = np.round(x*20)
df = pd.DataFrame({'x': x, 'y': y, 'c': c})
df_shifted = df.shift()
df_shifted['c'] = df['c']
alt.Chart(pd.concat([df, df_shifted])).mark_line().encode(x='x', y='y', color='c')
Этот подход не дает Altair / Vega-Lite сказать, что я хочу, чтобы мои очки составляли одну строку, а вместо этого делает один отдельный сегмент между каждой парой точек, используя дополнительную (смещенную) копию данных.
Сегмент линии окрашен на основе левой точки в каждом сегменте, что, как мне кажется, немного вводит в заблуждение (очень вводить в заблуждение, если было только несколько баллов). Вы можете сделать хак более сложным, сделав цвет средним для двух сторон.
Все еще надеясь, что кто-то определенно ответит на вопрос, сможет ли пользователь контролировать группировку.