Altair 中的多线图 - 数据格式?

Multi line plot in Altair - data formatting?

如何在 Altair 中创建多线图?

特别是,我有一个 pandas 数据框,如下所示:

          Commit    Author  Date        Week    Adds   Deletes  Changes Files     
   0    cf6dc511bbf Dev 1   2019-03-18  12      0      0        0       0     
   1    6a96d05922f Dev 1   2019-03-18  12      504    0        504     5     
   2    0fbc7192380 Dev 1   2019-03-19  12      125    105      230     4    
   3    64a9c4a1fa0 Dev 1   2019-03-19  12      8      0        8       1      

并且想在同一组轴上绘制日期与添加、删除和更改的关系。这是怎么做到的?我是否需要以某种方式重塑我的数据?

Altair 网站上的示例只包含一种颜色,而且似乎是自动的。

是的,您需要重塑数据,作为 pandas 中的预处理步骤,或使用 Fold Transform available in Altair 3.0. There is information about working with this type of wide-form data in the documentation: Altair: Long-form vs. Wide-form Data

下面是一个使用 transform-based 方法处理与您类似的数据的示例:

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'
)