防止在 Altair Chart 中连接线条

Prevent lines from being connected in Altair Chart

我想在 altair 图中绘制两条线。 其中一行没有某些 x 值的值。 目前,线段正在连接,但我需要它们显示为断开连接。

import pandas as pd
import numpy as np
import altair as alt

dd = {'x': np.arange(8),
     'group': [1,1,1,2,2,2,1,1],
     'y': [5,1,2,4,2,1,4,5]}

df = pd.DataFrame(dd)

alt.Chart(df).mark_line(point=True).encode(x='x:N', y='y', color='group:O')

当前输出:

期望的输出:

如何断开“1”组的线段?

听起来你想要的是impute一个空值。您可以在编码中使用估算转换来执行此操作:

import pandas as pd
import numpy as np
import altair as alt

dd = {'x': np.arange(8),
     'group': [1,1,1,2,2,2,1,1],
     'y': [5,1,2,4,2,1,4,5]}

df = pd.DataFrame(dd)

alt.Chart(df).mark_line(point=True).encode(
    x='x:N',
    y=alt.Y('y', impute=alt.ImputeParams(value=None)),
    color='group:O'
)