Vega-Lite / Altair将回归线延伸到图形的边缘

问题描述

我正在尝试寻找一种方法来将vega-lite / altair图表中的回归线延伸到图表边缘。到目前为止,将回归变换应用于数据集时,数据点只会延伸到原始数据集的边界框。是否可以通过某种方式将此范围扩展到图表的x / y范围?在下图中,黑线是vega-lite认计算的。我要达到的目的是将线条延伸到黄色所示的边缘。

enter image description here

编辑

extent调用中指定transform_regression属性时,似乎正在调整y变量而不是x变量。也许我完全误解了一些东西,但也许与我的x变量是日期的行为有关?

当我这样指定范围时

CDR_base.transform_regression(
    'per_capita','year',groupby=['region'],extent=[2000,2100]
  ).mark_line()

我希望回归线的范围从2000扩展到2100。由于某种原因,该范围似乎应用到了y轴。

enter image description here

解决方法

您可以使用回归变换的extent参数来控制线条的范围。例如,这是带有默认行的数据集:

import altair as alt
import pandas as pd
import numpy as np
np.random.seed(2)
df = pd.DataFrame({
    'x': np.random.randint(0,100,10),'y': np.random.randint(0,10)
})
points = alt.Chart(df).mark_point().encode(
    x='x:Q',y='y:Q'
)
points + points.transform_regression('x','y').mark_line()

enter image description here

在这里设置了extent

points + points.transform_regression('x','y',extent=[0,90]).mark_line()

enter image description here