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

时间:2019-05-08 18:28:31

标签: python altair

如何在Altair中创建多线图?

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

          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网站上的示例仅包含一种颜色,并且看起来是自动的。

1 个答案:

答案 0 :(得分:1)

是的,您将需要重塑数据,或者作为熊猫中的预处理步骤,或者使用Altair 3.0中提供的Fold TransformAltair: Long-form vs. Wide-form Data中提供了有关使用这种宽格式数据的信息。

以下是将基于变换的方法与与您相似的数据一起使用的示例:

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

chart