Да, вам необходимо изменить форму данных, либо в качестве шага предварительной обработки в пандах, либо с помощью Fold Transform , доступной в Altair 3.0.Информация о работе с этим типом широкоформатных данных содержится в документации: Альтаир: длинные данные против широкоформатных данных .
Вот примериспользования подхода на основе преобразования с данными, подобными вашим:
import pandas as pd
import numpy as np
import altair as alt
df = pd.DataFrame({
'Date': pd.date_range('2019-01-01', freq='D', periods=20),
'Adds': np.random.randint(0, 100, 20),
'Deletes': np.random.randint(0, 100, 20),
'Changes': np.random.randint(0, 100, 20),
})
alt.Chart(df).transform_fold(
['Adds', 'Deletes', 'Changes']
).mark_bar().encode(
x='yearmonthdate(Date):O',
y='value:Q',
color='key:N'
)