如何在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网站上的示例仅包含一种颜色,并且看起来是自动的。
答案 0 :(得分:1)
是的,您将需要重塑数据,或者作为熊猫中的预处理步骤,或者使用Altair 3.0中提供的Fold Transform。 Altair: 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'
)